Rating@Mail.ru

Форум по операционной системе GNU/Linux и свободному программному обеспечению


Текущее время: 19 июн 2018, 13:43

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2, 3  След.
Автор Сообщение
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 26 окт 2016, 12:55 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Lepton писал(а):
Olej писал(а):
негде взять файлы данных (.jpg, .xml) чтобы воспроизвести пример,.

Каскадный классификатор Хаара можно найти в сети (можно взять haarcascade_frontalface_default.xml здесь: http://alereimondo.no-ip.org/OpenCV/34).

Каскадных классификаторов представлено во множестве и после установки пакетов opencv-devel* (внутри):
Код:
[olej@dell OpenCV]$ pwd
/usr/share/OpenCV

[olej@dell OpenCV]$ ls lbpcascades
lbpcascade_frontalcatface.xml  lbpcascade_frontalface.xml  lbpcascade_profileface.xml  lbpcascade_silverware.xml

[olej@dell OpenCV]$ ls haarcascades
haarcascade_eye_tree_eyeglasses.xml      haarcascade_lefteye_2splits.xml             haarcascade_mcs_rightear.xml
haarcascade_eye.xml                      haarcascade_licence_plate_rus_16stages.xml  haarcascade_mcs_righteye.xml
haarcascade_frontalcatface_extended.xml  haarcascade_lowerbody.xml                   haarcascade_mcs_upperbody.xml
haarcascade_frontalcatface.xml           haarcascade_mcs_eyepair_big.xml             haarcascade_profileface.xml
haarcascade_frontalface_alt2.xml         haarcascade_mcs_eyepair_small.xml           haarcascade_righteye_2splits.xml
haarcascade_frontalface_alt_tree.xml     haarcascade_mcs_leftear.xml                 haarcascade_russian_plate_number.xml
haarcascade_frontalface_alt.xml          haarcascade_mcs_lefteye.xml                 haarcascade_smile.xml
haarcascade_frontalface_default.xml      haarcascade_mcs_mouth.xml                   haarcascade_upperbody.xml
haarcascade_fullbody.xml                 haarcascade_mcs_nose.xml

Lepton писал(а):
Ну а "картинок" в интернет полно :lol:

А картинки к примерам кода имеют смысл когда они придаются к коду, чтобы можно было воспроизвести тот эксперимент и результат, который получают авторы - это первичная проверка корректности воспроизведения примера ... уже после этого можно прогонять пример на множестве разнообразных данных.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 29 окт 2016, 19:28 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Olej писал(а):
Интересные статьи:

Документация ... справочные страницы по API, которых вполне достаточно, чтобы писать код C/C++:
OpenCV 2.4.12.0 documentation
class Mat
Цитата:
OpenCV C++ n-dimensional dense array class

+ все методы этого класса.
Кстати, вполне может пригодиться и не для OpenCV вовсе, а вообще для кода линейной алгебры, векторно-матричной...

OpenCV 3.1.0 - Документация по версии 3.1.0
Цитата:
Open Source Computer Vision

Examples
Цитата:
Here is a list of all examples:
  • contours2.cpp
  • convexhull.cpp
  • cout_mat.cpp
  • demhist.cpp
  • distrans.cpp
  • edge.cpp
  • ffilldemo.cpp
  • filestorage.cpp
  • fitellipse.cpp
  • grabcut.cpp
  • houghcircles.cpp
  • houghlines.cpp
  • kmeans.cpp
  • laplace.cpp
  • lsd_lines.cpp
  • minarea.cpp
  • morphology2.cpp
  • pca.cpp
  • polar_transforms.cpp
  • segment_objects.cpp
  • watershed.cpp


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 29 окт 2016, 19:55 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Olej писал(а):
Документация по версии 3.1.0

(фиксирую для себя ссылки)
Вот здесь документация по всем существующим версиям, списком на выбор:
Documentation
Цитата:
Versions 3.* (branch master)

Nightly 3.x docs
Release 3.1.0
Release 3.0.0
Release 3.0-rc1
Last Shpinx documentation snapshot
Release 3.0-beta
Release 3.0-alpha

Versions 2.* (branch 2.4)

Nightly 2.4.x docs
Release 2.4.13
Release 2.4.12
Release 2.4.11
Release 2.4.10
Release 2.4.9
...


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 29 окт 2016, 20:05 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Olej писал(а):
Вот здесь документация по всем существующим версиям, списком на выбор:

С версиями OpenCV тоже вот такая ... не совсем понятная картина...
На сайте OpenCV в разделе Download (можете там скачивать исходники проекта для сборки и установки):
Изображение
Цитата:
2016-05-19
VERSION 2.4.13
OpenCV for Windows
OpenCV for Linux/Mac
OpenCV for iOS

2015-12-21
VERSION 3.1
OpenCV for Windows
OpenCV for Linux/Mac
OpenCV for Android
OpenCV for iOS

2015-07-30
VERSION 2.4.12
OpenCV for Windows
OpenCV for Linux/Mac

2015-06-04
VERSION 3.0
OpenCV for Windows
OpenCV for Linux/Mac
OpenCV for Android
OpenCV for iOS
...

Т.е. 2 линии версий, 2.Х и 3.Х, существуют в параллель, и развиваются (по времени) впересыпку...
Это похоже на состояние дел с Python: Python 2 и Python 3 сосуществуют уже что-то порядка 10 лет...
Во всех последних дистрибутивах Linux в репозиториях присутствуют (там где они присутствуют :lol: ) только версии линейки 2.4, порядка такого:
Код:
[root@dell log]# dnf list 'opencv*'
Последняя проверка окончания срока действия метаданных: 2:59:11 назад, Sat Oct 29 17:05:31 2016.
Установленные пакеты
opencv.x86_64                                                     2.4.12.3-1.fc23                                          @updates
opencv-core.x86_64                                                2.4.12.3-1.fc23                                          @updates
opencv-devel.x86_64                                               2.4.12.3-1.fc23                                          @updates
opencv-devel-docs.noarch                                          2.4.12.3-1.fc23                                          @updates
opencv-python.x86_64                                              2.4.12.3-1.fc23                                          @updates
Доступные пакеты
opencv.i686                                                       2.4.12.3-1.fc23                                          updates
opencv-core.i686                                                  2.4.12.3-1.fc23                                          updates
opencv-devel.i686                                                 2.4.12.3-1.fc23                                          updates


P.S. Но в версиях 3.Х есть существенные алгоритмы, которых нет в 2.Х.
С этим нужно разобраться!


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 29 окт 2016, 20:31 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Olej писал(а):
С версиями OpenCV тоже вот такая ... не совсем понятная картина...

Как в динамике определить текущую (установленную) использующуюся версию OpenCV?
(это достаточно актуально, поскольку OpenCV - это библиотеки, а не приложение)

- Python:
Код:
#!/usr/bin/python
# -*- coding: utf-8 -*-

import cv2
# Print version string
print "OpenCV version : {0}".format(cv2.__version__)
# Extract major, minor, and subminor version numbers
(major_ver, minor_ver, subminor_ver, xxx) = (cv2.__version__).split('.')
print "Major version : {0}".format(major_ver)
print "Minor version : {0}".format(minor_ver)
print "Submior version : {0}".format(subminor_ver)

Код:
[olej@dell openCV]$ python2 version.py
OpenCV version : 2.4.12.2
Major version : 2
Minor version : 4
Submior version : 12


- C++
Код:
#include <iostream>
#include "opencv2/opencv.hpp"
using namespace cv;
using namespace std;
int main( int argc, char** argv ) {
   cout << "OpenCV version : " << CV_VERSION << endl;
   cout << "Major version : " << CV_MAJOR_VERSION << endl;
   cout << "Minor version : " << CV_MINOR_VERSION << endl;
   cout << "Subminor version : " << CV_SUBMINOR_VERSION << endl;
}

Код:
[olej@dell openCV]$ g++ version.cc -oversion

[olej@dell openCV]$ ./version
OpenCV version : 2.4.12.2
Major version : 2
Minor version : 4
Subminor version : 12


Вложения:
version.py [399 байт]
Скачиваний: 74
version.cc [353 байт]
Скачиваний: 74
Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 29 окт 2016, 20:50 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Olej писал(а):
На сайте OpenCV в разделе Download (можете там скачивать исходники проекта для сборки и установки):

Здесь вот в ответах авторов проекта OpenCV, есть реплика от читателя, который реально собирал OpenCV 3.1 под достаточно стареньким CentOS 6.6:
Цитата:
answered Feb 16 '16
Код:
yum groupinstall "Development Tools"
yum install cmake
yum install python-devel
yum install numpy
mkdir build
cd build
cmake ../opencv
make -j4

Then you don't need to install python-devel and numpy. They are not required, but they have been successfully detected by cmake and used during the build in my case (python-2.6.6 and numpy-1.4.1).

И это должно срабатывать в любом Linux.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 04 ноя 2016, 12:32 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Очень интересный и очень нужный проект LSD (a Line Segment Detector), здесь можно скачать .zip исходников: Download v.1.6, и при желании предыдущих версий: 1.0 и 1.5.
Здесь вот можно скачать PDF публикацию (21 стр.) 2012 года LSD: a Line Segment Detector, Rafael Grompone von Gioi, Jeremie Jakubowicz, Jean-Michel Morel, Gregory Randall - математическое обоснование методов ... там очень приличная математика.
Там же - online на странице обработка ваших собственных изображений - загружайте файлы и получайте результаты.

Сборка проекта не вызывает сложностей - в распакованном архиве:
Код:
[olej@dell lsd_1.6]$ make
cc -O3 -o lsd lsd_cmd.c lsd.c -lm
cc -o lsd_call_example lsd_call_example.c lsd.c -lm

[olej@dell lsd_1.6]$ file lsd
lsd: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=42f71e62623cb9ee25af4a38bf6391c484971c00, not stripped

[olej@dell lsd_1.6]$ file lsd_call_example
lsd_call_example: ELF 64-bit LSB executable, x86-64, version 1 (SYSV), dynamically linked, interpreter /lib64/ld-linux-x86-64.so.2, for GNU/Linux 2.6.32, BuildID[sha1]=d3950139f54a09bdda3ab98c2442b36f606e8363, not stripped

2-е приложение - для проверки работоспособности:
Код:
[olej@dell lsd_1.6]$ ./lsd_call_example
1 line segments found:
63.595665 0.625000 63.595665 126.875000 1.250000 0.125000 80.106510

При обработке .jpg файла (и любого другого графического формата) получите ошибку:
Код:
[olej@dell lsd_1.6]$ ./lsd ../../bad_1.jpg xxx
Error: not a PGM file!

Это потому, что приложение lsd работает только с чёрно-белым изображением PGM.
Для предварительной подготовки (конвертации) файлов можно использовать команду convert из общеизвестного пакета ImageMagick.

В версии 3.Х OpenCV LSD алгоритм включен в состав пакета: class cv::LineSegmentDetector.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 04 ноя 2016, 12:46 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Olej писал(а):
Это потому, что приложение lsd работает только с чёрно-белым изображением PGM.
Для предварительной подготовки (конвертации) файлов можно использовать команду convert из общеизвестного пакета ImageMagick.

Код:
[olej@dell openCV]$ convert --version
Version: ImageMagick 6.9.2-7 Q16 x86_64 2015-12-06 http://www.imagemagick.org
Copyright: Copyright (C) 1999-2015 ImageMagick Studio LLC
License: http://www.imagemagick.org/script/license.php
Features: Cipher DPC Modules OpenMP
Delegates (built-in): bzlib cairo djvu fftw fontconfig freetype gslib jbig jng jp2 jpeg lcms ltdl lzma openexr pangocairo png ps rsvg tiff webp wmf x xml zlib

[olej@dell openCV]$ convert bad_2.jpg bad_2.pgm

[olej@dell openCV]$ file bad_2.pgm
bad_2.pgm: Netpbm PGM "rawbits" image data, size = 1024 x 768

Код:
[olej@dell lsd_1.6]$ ./lsd bad_1.pgm xxx

[olej@dell lsd_1.6]$ ls -l xxx
-rw-rw-r-- 1 olej olej 38136 окт 26 17:38 xxx

[olej@dell lsd_1.6]$ cat xxx | wc
    528    3696   38136

Каждая строка выходного (текстового) файла - описание одного отрезка линии из 7 значений:
Код:
[olej@dell lsd_1.6]$ cat xxx | tail -n1
275.895630 19.360893 276.873725 38.125066 1.768855 0.125000 5.472955

Из документации (в моём горбатом переводе):
Цитата:
Каждая строка состоит из семи цифр, разделенных пробелами, которые х1, У1, х2, У2, протяжённость, угол П, -log_nfa. Например, строка:
159.232890 134.369601 160.325338 105.613616 2.735466 0.125000 17.212465
- означает, что отрезок, начиная с точки (159.232890,134.369601), заканчивающийся в точке (160.325338 105.613616)
и длиной 2.735466 был обнаружен. Угол точности П от 0.125 использовалось, что означает градиент допуска по углу
PI*180 = 0.125*180 = 22,5 градусов. Обратный логарифм по основанию 10 от NFA детектирования -log_10(НФА)=17.212465,
поэтому уровень NFA был 10^(-17.2124656), примерно 6е-18.
Единицы измерения длины служит точка и начало координат является центром верхнего левого пикселя (0,0).
Наконец, мы определим вероятность ложного срабатывания (NFA), связанную с линией.


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 04 ноя 2016, 14:32 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Olej писал(а):
Очень интересный и очень нужный проект LSD (a Line Segment Detector),

Эта штука может оказаться очень удачной для построения для построения различных дискриминантеров различных образов-изображений.

Для получения файла выделенных линий из изображения любого формата используем команду типа:
Код:
[olej@dell RECT]$ convert r1.jpg -type Grayscale pgm:- | ./lsd - r1.line

[olej@dell RECT]$ ls -l r1.line
-rw-rw-r-- 1 olej olej 6186 ноя  4 13:24 r1.line

[olej@dell RECT]$ wc r1.line
  88  616 6186 r1.line


А для чтения набора линий (в тестовом варианте, чтобы не писать полностью свой код) непосредственно в C/C++ код используем что-то типа такого:
Код:
char fcommand[ 80 ] = "convert %s -type Grayscale %s pgm:- | ./lsd - %s -",
       command[ 80 ];
sprintf( command, fcommand, argv[ optind ], opc, opl, group.c_str() ); // opc, opl - любые опции программ
FILE *pipe = popen( command, "r" );
char buf[ 80 ], *p = buf;
while( true ) {
   if( 0 == fread( p, 1, 1, pipe ) ) break;
   if( *p++ != '\n' )
      continue;
   else
      p = buf;
   float x1, y1, x2, y2, width, p, log_nfa; // строка линии
   if( sscanf( buf, "%f%f%f%f%f%f%f", &x1, &y1, &x2, &y2, &width, &p, &log_nfa ) != 7 )
      exit( 1 );
   // заполняем куда-то (массив, вектор, ...) очередную строку линии
}
fclose( pipe );


Вернуться к началу
 Профиль Отправить личное сообщение  
 
 Заголовок сообщения: Re: OpenCV и компьютерное зрение
Непрочитанное сообщениеДобавлено: 14 дек 2016, 16:08 
Не в сети
Писатель
Аватара пользователя

Зарегистрирован: 24 сен 2011, 14:22
Сообщения: 10806
Откуда: Харьков
Хорошие статьи (с дальнейшими ссылками) по обучению классификатора образов:

Обучение OpenCV каскада Хаара
Цитата:
Мальцев Антон
4 января 2014
В этой статье я попробую показать, как обучить каскад с нуля за несколько часов, натренировав на поиск простого предмета в видеопотоке


Классификация и выделение объектов на изображениях
Цитата:
Фесенко Игорь
16 ноября 2010
В связи со сферой своей деятельности, собрался, на мой взгляд, очень ценный материал, которым хочу поделиться с вами.


Подборку буду продолжать...


Вернуться к началу
 Профиль Отправить личное сообщение  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 28 ]  На страницу Пред.  1, 2, 3  След.

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
Создано на основе phpBB® Forum Software © phpBB Group
Русская поддержка phpBB
[ Time : 0.339s | 20 Queries | GZIP : On ]