Андрей_Андрей
Пользователи-
Количество публикаций
43 -
Зарегистрирован
-
Посещение
Все публикации пользователя Андрей_Андрей
-
Включаю\отключаю использование OpenMP и TBB. Включаю/отключаю именно их вместе, т.к. они оба включены в сборке. вне зависимости от того, включены они или нет, вижу от 5 до 12 потоков своего приложения. они в совокупности грузят все 4 ядра. совокупная загрузка цп - 38 - 40%. включаю использование OpenMP добавляя #include <omp.h> и #pragma omp parallel for перед процедурами, которые, как мне кажется, можно распараллелить. никаких изменений по сравнению с вариантом когда я не использую OpenMP я не вижу. что так ,что эдак, время цикла на CoreI7 с 4 ядрами колеблется от 50 до 60 мс. Можно-ли выжать что-то еще из моего железа, до того как перейти на GPU ?
- 8 replies
-
- opencv 2.4
- tbb
-
(и ещё %d)
Теги:
-
Ищу в потоке машин пластины номеров. нахожу обученным каскадом Хаара. использую detectMultiScale. Каскад обучен на примерно 1000 положительных примеров и 5000 отрицательных. Прототипировал на python2. При этом искал пластины сначала на всем кадре 2560х2048 точек, потом пробовал выделять зоны в которых есть движущиеся автомобили, и искать только в них. Обнаружил, что вариант с поиском по всему кадру в итоге быстрее, чем вариант с предварительным поиском зон движения. длительность цикла программы на питоне около 250 мс, что неприемлемо по быстродействию. Перешел на С++/VS2013. С родным компилятором MSVS. Удивительно то, что программа в Debug версии имеет цикл больше секунды, а в Release - 300 - 350 мс, что больше, чем у питона!. Все 4 ядра Core I5 и в питоне, и в С++ при работе release версии грузятся примерно на 90%. Утечек памяти не наблюдаю. Почему С++ не дает выигрыша по скорости, хотя должен? Где я не прав? Что подправить в настройках в Visual Studio 2013? и главное, что дальше делать? Спасибо.
-
Можете дать ссылку на описание метода, или примера?
-
Ну, у существующих комплксов разные характеристики и функции разные...А вот "поток" например, использует core i7. У автоурагана действительно слабенький селерон, я правда не знаю, сколько полос он видит одновременно.
-
Спасибо, а как мне ускориться? что будет работать быстрее Хаара и искать пластины номеров не хуже?
-
Если речь идет о распознавании каскадами Хаара, то они и нужны ( каскады Хаара). Можно взять готовые или обучить самому. Вот так, например: https://habrahabr.ru/post/208092/
-
Пробую учить каскад хаара. Изучил https://habrahabr.ru/post/208092/ Запускаю opencv_traincascade.exe -data haar -vec samples.vec -bg Bad.dat -minhitrate 0.990 -maxFalseAlarmRate 0.5 -numPos 68 -numNeg 49 -numStages 16 -w 30 -h 10 -featureType LBP -acceptanceRatioBreakValue 10e-5 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -numThreads 4 из opencv версий 2.4.10 и 2.4.11 и 3.1. примеров 450, контрпримеров 98. на opencv 2.4.10 останавливается на 5-й минуте обсчета, параметры запуска такие: C:\cars>opencv_traincascade.exe -data haar -vec samples.vec -bg Bad.dat -minhitrate 0.990 -maxFalseAlarmRate 0.5 -numPos 68 -numNeg 49 -numStages 16 -w 30 -h 10 -featureType LBP -acceptanceRatioBreakV alue 10e-5 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -numThreads 4 Training parameters are loaded from the parameter file in data folder! Please empty the data folder if you want to use your own set of parameters. PARAMETERS: cascadeDirName: haar vecFileName: samples.vec bgFileName: Bad.dat numPos: 68 numNeg: 49 numStages: 16 precalcValBufSize[Mb] : 2048 precalcIdxBufSize[Mb] : 2048 stageType: BOOST featureType: LBP sampleWidth: 30 sampleHeight: 10 boostType: GAB minHitRate: 0.995 maxFalseAlarmRate: 0.5 weightTrimRate: 0.95 maxDepth: 1 maxWeakCount: 100 ===== TRAINING 0-stage ===== <BEGIN POS count : consumed 68 : 68 NEG count : acceptanceRatio 49 : 1 Precalculation time: 0.006 +----+---------+---------+ | N | HR | FA | +----+---------+---------+ | 1| 1| 0| +----+---------+---------+ END> Training until now has taken 0 days 0 hours 0 minutes 0 seconds. ===== TRAINING 1-stage ===== <BEGIN POS count : consumed 68 : 68 Train dataset for temp stage can not be filled. Branch training terminated. C:\cars>pause Для продолжения нажмите любую клавишу . . . Собственно вопрос - что не так? Почему он останавливается с ошибкой через 5 минут учебы? Спасибо.
-
огромное спасибо за советы, каскад хотя-бы начал учиться. Параметры такие: opencv_traincascade.exe -data haar -vec samples.vec -bg Bad.dat -minhitrate 0.990 -maxFalseAlarmRate 0.4 -numPos 689 -numNeg 800 -numStages 16 -w 30 -h 10 -featureType LBP -acceptanceRatioBreakValue -1 -precalcValBufSize 2048 -precalcIdxBufSize 2048 -numThreads 4 доходит до 12 stage и потом та-же ошибка : POS count : consumed 689 : 707Train dataset for temp stage can not be filled. Branch training terminated. Опять ему мало примеров? каскад обучаю на поиск номерных знаков. то, что обучилось на картинке находит следующее: см. вложение. Скажите - почему столько ложных обнаружений? плохая выборка контрпримеров? В какую сторону копать дальше? Спасибо.
-
В компанию "Ситроникс" (sitronics-cams.com) требуется программист С/С++ для разработки приложений систем машинного зрения. Требования: - хорошее знание С/С++, openCV для windows или linux систем. - опыт использования любой системы контроля версий - примеры кода для ознакомления Плюсом будут: - знание Python, Java, matlab - опыт самостоятельной разработки алгоритмов машинного зрения Условия: - офис рядом с м. Петровско-Разумовская - полное соблюдение ТК РФ Компенсация обсуждается индивидуально с каждым кандидатом..
-
- opencv
- machine vision
-
(и ещё %d)
Теги:
-
Здравствуйте, для JAI - одной камеры нет похожего рабочего примера?
-
Решил. Помог совет отсюда: http://stackoverflow.com/questions/11699298/opencv-2-4-videocapture-not-working-on-windows последовательность действий такова: копируем все файлы из \opencv\sources\3rdparty\ffmpeg в site-packages и\или прописываем путь до них в PATH. затем переименовываем opencv_ffmpeg.dll в opencv_ffmpegXYZ.dll где X.Y.Z - версия openCV. в моем случае 2.4.10 и файл назывался opencv_ffmpeg2410.dll. После этого по прежнему ничего не работает. Далее идем в opencv\build\x64\vc10\bin и копируем opencv_ffmpegXYZ_64.dll, заменяем им ранее скопированный opencv_ffmpeg_64.dll. Именно так, иначе не работает, т.к. файлы opencv_ffmpeg_64.dll из папок \sources\3rdparty\ffmpeg и build\x64\vc10\bin различаются. После этого все заводится. Моя конфигурация: Win 8.1x64 Python 2.7x32 openCV 2.4.10x32
-
мда.. а можно как-то это отдебажить? посмотреть версию кодека который питон пытается использовать, например в процессе захвата...
-
открывается. абсолютный путь проблему не решил. Заметил одну штуку... ставил ffshow. после этого стали захватываться некоторые avi. а mp4 - нет. потом поставил ffmpeg. те авишники что раньше захватывались, захватываться перестали. сейчас поставил K-lite codec pack. Теперь ничего больше не захватывается, кроме встроенной в ноутбук web-камеры.
-
поставил, перезагрузил - без результата. файлы открываются медиапроигрывателями, а openCV - не хочет... вот код - примитивный- import numpy as np import cv2 cap = cv2.VideoCapture('video2.avi') #cap = cv2.VideoCapture(0) ret, frame = cap.read() print 'ret=',ret while(ret): # Capture frame-by-frame ret, frame = cap.read() cv2.imshow('frame',frame) if cv2.waitKey(1) & 0xFF == 27: break cap.release() cv2.destroyAllWindows() с web- камеры все захватывается хорошо
-
А не подскажете как все выглядит в связке Python 2.7 + OpenCV 2.4.10 проблема та-же не захватываются mp4, flv и некоторые avi, как и у топикстартера переименование файлов не помогает.
-
здравствуйте. Нужно отслеживать автомобиль появляющийся из-за горизонта. однажды будучи захваченным, он должен продолжать отлеживаться, даже если остановится, а потом продолжит движение. Судя по мануалам каскады хаара мне не очень подойдут. Экспериментирую в питоне с updateMotionHistory но ругается на то, что не подходит ему первый аргумент. Подскажите, в каком направлении двигаться.. Спасибо.
-
разобрался. в примере motemp.py в папке samples для питона метод используется работает и из текста примера понятно как. Грустно, что из документации на docs.opencv.org ничего не понятно. Буду искать более детальный справочник по opencv.
-
смотрю cv2.updateMotionHistory(silhouette, mhi, timestamp, duration) на docs.opencv.org вместо silhouette подставляю картинку такую-же как и mhi - выпадает с сообщением OpenCV Error: Bad type of mask argument () in cvUpdateMotionHistory, file ..\..\..\..\opencv\modules\video\src\motempl.cpp, line 54 Traceback (most recent call last): File "C:/Users/ataranov/Downloads/opcvDistr/opencv/sources/samples/python2/edge.py", line 47, in <module> cv2.updateMotionHistory( img, m_motionHistoryImage, 200, 100 ) cv2.error: ..\..\..\..\opencv\modules\video\src\motempl.cpp:54: error: (-208) in function cvUpdateMotionHistory не знаю как быть и где почитать про это...