Этот вопрос уже давно меня озадачивает; Как стать экспертом в области компьютерного зрения? Под экспертом я имею в виду инженера-программиста, также известного как разработчик. Стоит ли мне читать больше книг? записаться на академическую программу? онлайн-курсы? участвовать в проектах с открытым исходным кодом? подать заявку на соответствующую стажировку / работу? выполнять исследовательские работы?
Это озадачило меня до такой степени, что я даже усомнился в том, что этот вопрос вообще был правильным. Мне посоветовали думать наоборот. Чего я пытаюсь достичь? Что я хочу построить? Затем я должен попутно изучить необходимые теории и инструменты, т.е. я должен стать человеком, движимым объективными целями [2, 3, 4]. Другой совет состоял в том, чтобы быть более конкретным и перефразировать вопрос; например, как мне устроиться на x работу в компанию y, например на z человека?
С другой стороны, необходимо изучать научные концепции. Бесполезно учиться программировать, если вы не знаете, когда и когда не применять такие знания. Наука, управляющая всей этой магией, немного подавляет. Это не укладывается ни в срок жизни одного проекта, ни в те несколько часов, которые можно выделить после долгого рабочего дня.
Конечно, нет правильного способа сделать это, и каждый подает собственный пример. Итак, в этом сообщении в блоге я напишу шаги, которые мне следует предпринять в следующие несколько месяцев. Это может быть правильный подход, а может быть и нет. Кроме того, я хотел бы провести различие между фактическим планом, которому я буду следовать, и исчерпывающим списком ресурсов, который я включаю для полноты картины. Я продолжал корректировать план и попутно добавлять его в список.
Чтобы сузить критерии поиска, я решил перефразировать свой вопрос.
Какова техническая квалификация инженера-программиста компьютерного зрения?
Я поискал в LinkedIn несколько вакансий и профилей профессиональных инженеров-программистов компьютерного зрения. Я мог с уверенностью сделать вывод;
- почти нет четкой разницы между позицией разработчика и позицией исследователя; нужно иметь возможность обмениваться шляпами между обоими
- степень магистра, доктора философии, опубликованная статья или патент поддержат ваше заявление о приеме на работу
- солидный опыт в машинном обучении, параллельных вычислениях, многопоточности и оптическом распознавании символов OCR были обычными навыками
- необходим опыт работы с Matlab для прототипирования и c ++ для оптимизированных решений
- OpenCV - это обязательная библиотека
- и, конечно же, опыт работы с реальными проектами и решение сложных задач.
Друг Абдельрахман Элогил помог мне получить отзывы от двух инженеров по программному обеспечению компьютерного зрения по вышеуказанным вопросам;
Мой личный совет заключается в том, что резюме - это очень большая область. Он должен иметь хороший общий опыт, а затем сосредоточиться на конкретной области резюме. Также «Цифровая обработка изображений» Гонсалеса - известная книга по базовой обработке изображений. У него тоже есть книга с использованием Matlab. Я также согласен с тем, что было сказано, что большинство компаний не используют Matlab, хотя они не возражают использовать его для прототипирования, если таковой имеется, или использовать его бесплатную альтернативу Octave. Я эксперт по Matlab, но с тех пор, как пришел в свою компанию, я им не пользовался.
Еще один добавил;
Кажется, что есть два типа инженеров, которые занимаются компьютерным зрением, и они могут существовать вместе в одной команде:
1. Инженер высокого уровня, и это человек с небольшим опытом или без опыта в резюме, но работает с системами, включающими резюме, соединяя компоненты резюме, не разбираясь в том, как они работают.
2. Основной инженер CV, и большинство из них имеют MS / PhD в CV / ML (однако существуют некоторые большие исключения) или провели некоторые исследования в CV во время бакалавриата / стажировки / работы и т. Д.
Еще один комментарий: a Основной инженер CV не должен быть экспертом или даже знаком с OpenCV. Он просто достаточно хорошо понимает теорию. Кроме того, резюме - это большая сфера деятельности, и основной инженер резюме не будет знать всего. Ему просто нужно иметь подтвержденные знания и опыт в одной области, и это говорит о том, что он будет в порядке, чтобы взяться за аналогичную / другую проблему / проект CV.
Еще у меня был случайный разговор с коллегой Ахмедом Ибрагимом - бывшим стажером в Microsoft Research Labs. - и добавил, что исследовательский разработчик сосредотачивается на реализации алгоритмов, предписанных его руководителем группы. Руководитель группы имеет докторскую степень. в области, связанной с их исследованиями. Он придумывает подход к решению проблемы и ожидаемые результаты. Затем разработчик знакомится с инструментами и библиотеками для выполнения поставленной задачи. Наконец, он сообщает об узких местах и результатах руководителю группы.
Поэтому я бы просто сказал, что страсть - это Х-фактор любого успеха. Я просто продолжал работать над своим проектом Face Hallucination - проектом, связанным с компьютерным зрением - и узнал бы как можно больше в будущем. Я надеюсь, что это принесет большую ценность человечеству, поскольку это самое главное.
«Что касается того, чему мы должны научиться, прежде чем мы сможем это сделать, мы узнаем, выполняя это». - Аристотель, Никомахова этика.
Исчерпывающий список ресурсов:
- Онлайн-курсы
Https://www.youtube.com/watch?v=715uLCHt4jE
- Материалы курса
- Http://slazebni.cs.illinois.edu/spring13/
http://vision.stanford.edu/teaching/cs231n/index.html
http: // ufldl. stanford.edu/tutorial/
- Книги
- Компьютерное зрение: алгоритмы и приложения (тексты в компьютерных науках), Ричард Селиски
Компьютерное зрение OpenCV с Python, Джозеф Хауз
- Блоги
- Проекты с открытым исходным кодом
- Http://www.openpr.org.cn/
http://www.tina-vision.net/
http://camellia.sourceforge.net/ женщина
«Http://opensourcevfx.org/tag/image-processing/
https://code.google.com/p/openip/
- Вакансии
- Https://www.dice.com/jobs/detail/Computer-Vision-%26%2347-Image-Processing-Software-Engineer-Robert-Half-Technology-San-Diego-CA-92123/rhalfint/00400- 130120
http://itseez.com/jobs/
https://www.miteksystems.com/careers/software-engineer-computer-vision-image-processing-0 < br /> https://jobs.apple.com/search?job=42945510&openJobId=42945510#&openJobId=42945510
http://wuzzuf.net/jobs/p/47377-C—-3D– Обработка изображений, инженер-программист, 360 изображений, Гиза, Египет
- На кого подписаться
- LinkedIn [ссылка]
Ссылки:
[1] Существуют ли какие-либо проекты с открытым исходным кодом в области обработки изображений? Https://www.researchgate.net/post/Are_there_any_open_source_projects_in_image_processing1
[2] https://ask.fm/yasserhtd/answers/129884902406
[3] https: // ask .fm / yasserhtd / answers / 130406182662
[4] https://ask.fm/yasserhtd/answers/130836844806