ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 컴퓨터 비전과 딥러닝의 만자신다, 영화 속 상상을 현참으로 만들다 By OpenCV로 배우는 컴퓨터 비전 프로그래밍 강사 황선규 박사님 봅시다
    카테고리 없음 2020. 2. 15. 15:24

    >


    기쁩니다. 우리는 'OpenCV4에서 배운 컴퓨터 비전과 기계 러닝'저자 팬 송규이프니다니다. 데이터영상처리전공으로 십수 년 전 박사학위를 받은 후 연구교수와 대기업의 재직을 거쳐 기업, 대학 등에서 다양한 강의를 통해 컴퓨터 비전을 배우는데 의의가 있는 많은 분들을 만나게 되어 기쁘게 생각합니다.​



    영상처리전공으로 아주 오랫동안 연구, 실무, 강의를 해 온 것으로 알고 있습니다.​ 네, 2006년 한양대에서 영상 처리를 전공하고 박사 학위를 취득했고, 뉴질랜드 캔터베리 대학과 한양 대학에서 포스트 닥터 연구 교수로 재직했습니다. 2009년부터 20하나 6년까지는 LG전자에서 전략 스마트 폰 카메라 기능 개발과 안드로이드 카메라 프리입니다. 워크 업무를 담당하며 실무에도 직접 나섰습니다. 요즘은 기업, 대학 등에서 컴퓨터 비전 관련 강의를 하고 있습니다. 퍼스트 캠퍼스에서도 관련 강의를 한 지 햇수로 4년째가 되네요. 퍼스트캠퍼스 같은 사교육기관에서 컴퓨터 비전에 관한 강의를 하게 된 특별한 계기가 궁금하다.현재 Open CV를 배울 수 있는 강의가 온라인에 몇 개 있는데, 오래된 버전을 사용하면 내 컴퓨터 비전 하나만 가르치는 식으로 재공되고 있습니다. 그렇기 때문에 컴퓨터 비전의 기초부터 전문적인 이론까지 체계적으로 배울 수 있는 커리큘럼은 지금도 강의밖에 없는 것 같습니다. 퍼스트 캠퍼스에서 내 강의가 이미 4년째 진행되고 있어 최근에는 제가 OpenCV책을 집필했기 때문에 복잡한 컴퓨터 비전 이론을 초심자들에게 어떻게 통보해야 하는지에 대한 발보프카되고 있다고 자부한다.​​​


    ​-컴퓨터 비전이라는 것이 1조의 사람에게는 익숙한 개념입니다. 컴퓨터 비전에 대해서 간단히 설명하고 주시면 감사하겠습니다. ​ 컴퓨터 비전은 사람의 시각 시스템이 작업을 컴퓨터가 동 1 하게 수행하도록 연구하는 분야입니다. 사람이 눈으로 사물을 보고 무엇인가를 인지하는 장면을 이해하는 것처럼 PC에 사진 또는 동영상에서 특정 객체의 위치와 자세를 찾아내 거과한 장면을 인식시키는 작업이 컴퓨터 비전입니다.사람은사진속의것을아주빠르고정확하게,그리고직관적으로이해할수있습니다. 그렇기 때문에 컴퓨터가 사람처럼 사진을 인식하고 사물을 빠르고 정확하게 찾을 수 있도록 하는 것은 결코 쉽지 않습니다. 기본적으로 컴퓨터 비전으로 취급하는 영상 데이터는 꽤 대용량이기 때문에, 연산 속도와 메모리 사용량에 있어 제약이 있습니다. 이러한 제약을 극복하고 사람에게 유용한 정보를 제공하는 컴퓨터 비전 시스템을 만들기 위해서는 영상 데이터의 속성을 올바르게 이해하고 다양한 프로그래밍 스킬을 갖출 필요가 있다. GPU를 활용하는 거과인 병렬 프로그래밍을 실시하는 것도 필수적으로 고려해야 한다.컴퓨터 비전은 오상날의 실생활에서 어떤 곳에서 사용되고 어떤 역할을 하고 있습니까?기존의 컴퓨터 비전은 공장에서 불량 검출, 제품 검사 등을 다루는 머신 비전(machine vision) 분야에서 주로 사용되었습니다. 아마 컴퓨터 비전이 가장 상업적으로 사용된 분야는 머신 비전 1것입니다. 그리고 요즘에는 다양한 기기에 '카메라'가 장착되어 무수한 분야에서 컴퓨터 비전이 사용되고 있습니다.휴대전화에 설치된 카메라가 사람의 얼굴을 검출해 초점을 맞추고 장면을 인식해 적절한 색감을 골라 사진을 촬영한다. 스마트폰에서 널리 쓰이는 스노우 앱은 얼굴에서 눈, 코, 입, 눈썹, 턱선 등을 정밀하게 찾아내 자연스럽고 재미있는 그래픽 합성을 수행할 것이다. 주차장에서는 자동차 번호판을 자동으로 인식해 운전자들이 주차표를 받아야 하는 번거로움이 사라졌고, 최근에는 자동차에는 차선 인식 기능을 이용한 자율주행이 탑재되고 있습니다. 집안에서 사용하는 로봇청소기에도 카메라가 달려 있어 로봇청소기의 위치를 탐지해 집안 구석구석을 청소한다. 지난해부터 보급된 AI스피커에도 최근에는 카메라가 장착돼 사용자의 동작을 인식하는 유아의 얼굴을 인식해 다양한 맞춤형 서비스를 제공하고자 합니다.-딥러닝 기술이 발전함에 따라 컴퓨터 비전은 앞으로 더욱 활용될 것으로 보입니다.그렇죠. 딥러닝 기술의 발전에 따라 컴퓨터 비전의 활용도가 커지고 있습니다. 예를 들어 전통적인 컴퓨터 비전을 사용한 얼굴 검출 기술은, 선글라스를 쓸 수 있는 가면을 장착하면 검출에 실패하는 일이 많았지만, 딥러닝 기술을 적용한 얼굴 검출 기술은, 숨어 있어도, 얼굴이 회전해도 정확하게 얼굴을 찾을 수 있습니다. 또 검출된 얼굴이 누구인지를 판단하는 얼굴인식 기술의 정확도도 상당히 높아졌고 CCTV에서 범죄자를 찾아내는 기술도 상용화되고 있습니다. 사실 컴퓨터 비전을 전공한 사람의 입장에서 CCTV에서 저 화질 영상이 고화질로 확대되고, 원하는 사람을 찾아내는 기술은 영화 속에서 나 가능한 1이었지만 요즘 현실이 되어 있다는 것이 정말 놀랍습니다.전통적인 컴퓨터 비전과 딥러닝의 융합은 지금도 많은 논문과 상용서비스에서 시도되고 있으며, 앞으로 상상 이상의 기술이 현실 속으로 침투할 것으로 예상됩니다. 최근에는 딥러닝의 발전으로 컴퓨터 비전 분야에서도 오브젝트 인식과 검출 성능이 크게 향상되었습니다. 그렇기 때문에 딥러닝만으로는 현실의 문제를 완벽하게 해결하기 어렵기 때문에 딥러닝을 처음 배우신 분들도 컴퓨터 비전을 기초부터 다시 공부하는 분이 항상 어과입니다. 그만큼 컴퓨터 비전의 활용에 대한 기대는 더욱 높아지고 있음을 알 수 있습니다.​​


    컴퓨터 비전을 배우려면 반드시 알아야 할 라이브러리인 Open CV에 대해 간단한 소개를 부탁드립니다.OpenCV는 오픈소스로 개발되고 있는 컴퓨터 비전 라이브러리이다. OpenCV는 2006년.0버전이 발매된 달음에에서 현재까지 지속적으로 발전하면서 2500개가 넘는 최신 컴퓨터 비전 알고리즘과 기계 학습 알고리즘의 구현 코드를 공급할 것입니다. OpenCV는 기본적으로 C/C++ 언어로 작성되어 있으며 Python, Java, Matlab, JavaScript 인터페이스도 공급합니다. OpenCV는 Windows, Linux, MacOS등 운영 체제를 지원하고 안드로이드와 iOS 같은 무바 1환경도 지원하는 것입니다. 내 강의에서는 Windows환경에서 C/C++언어로 OpenCV클래스와 함수를 다루는 방법을 설명했고 이를 제대로 배운다면, Python, MacOS, Android등의 다른 개발 환경에서도 OpenCV를 쉽게 사용할 수 있습니다. ​ OpenCV 4. 것은 20일 9년 4월에 발표됐으며 이는 20일 8년월에 발표된 OpenCV 4.0버전의 마이너 업그레이드이다. 그러므로 OpenCV 4.0버전의 새 기능에 쥬이지에는 것이 좋습니다. OpenCV 4.0버전은 C++의 문법을 공식적으로 사용하고, 디플러 닌 추론(inference)을 지원하는 DNN(Deep Neural Net)모듈이 지원됩니다. 도 한 SSE2, SSE4, AVX2, NEON, VSX등의 최신 CPU특화 명령어를 지원하고 성능이 향상되었습니다. OpenCV 4. 것은 DNN모듈의 성능이 향상하고 Mask-RCNN등의 최신 디플러 닌 모델을 추가로 지원하는 것입니다. 자주, OpenCV는 어느 쪽이 배우가 나쁘지 않습니까? 그래서 어떻게 활용할 수 있습니까?​는 장비 검사 오류 검출 등의 머신 비전 분야에서 1 하시는 분들과 기타 디플러 닌, 영상 처리 관련 앱 개발 등의 영역에서 1을 경영하시는 분들은 OpenCV를 많이 배우고 유용하게 사용할 수 있어요. 그 외에도 컴퓨터 비전 분야에 취업을 희망하거나, 나쁘지 않은 규모의 회사를 운영하는 분들이 컴퓨터 비전 시스템 외주 비용을 절약하고 기술 내재화를 위해 배우는 경우도 있고, 컴퓨터 비전 관련 회사에 입사한 분들이 빨리 컴퓨터 비전 기초지식을 습득하기 위해 OpenCV를 배우기도 할 것입니다. 많지는않지만디지털아트에적용하기위해서학습하는분들도있어요.특히 이 중에서 개발자가 Open CV를 배운다면 경력 면에서 어떤 장점이 있을까요?컴퓨터 비전 분야에서 OpenCV 라이브러리는 거의 표준이 되고 있습니다. 과거에도 몇가지 영상 처리의 유출 라이브러리가 있었지만 1부 개발자 그룹에서만 사용되는 경우가 많앗움니다. 그러다 보니 OpenCV가 나빠지면서 컴퓨터 비전의 초보자뿐만 아니라 기존 개발자들도 OpenCV를 사용하는 경우가 많아졌습니다. 수치적으로도 OpenCV질문 응답 포럼 사이트에 등록된 사용자가 5만명을 넘어 OpenCV라이브러리 다운로드 횟수도 일 900만을 넘습니다..몇 년 전까지만 해도 머신비전 회사에서는 아무래도 Halcon, MiL 등의 상용 라이브러리를 주로 사용했지만 최근에는 OpenCV 성능이 나쁘지 않고 지상에서 OpenCV를 도입하는 회사도 항상 나쁘지 않습니다. 도 했다 Android, iOS등의 무바 1운영 체제에서도 OpenCV를 사용할 수 있기 때문에 스마트 폰 앱 개발자들도 OpenCV에 많은 관 심을 가지고 있습니다.. 정스토리 결국, OpenCV 라이브러리를 사용할 수 있으면, 영상 데이터를 취급하는 모든 분야에서 개발자로서 큰 무기가 됩니다.​​​


    그럼 Open CV를 배우려면 컴퓨터 공학에 대한 지식이 있어야지 처음 아닌가요?행렬과 미분과 같은 수학적 지식이 있으면 유리하지만 사실 행렬 자체는 어느 것도 나쁘지 않고 쉽게 이해할 수 있는 개념이고, 미분도 복잡한 미분공식에 대한 이해를 구하는 것이 아니기 때문에 실제로 관련 지식이 부족하더라도 어느 것도 나쁘지 않게 배울 수 있습니다. 컴퓨터공학적지식도마찬가지로전공자가아니라도배우는데큰문제는없습니다.OpenCV 라이브러리가 C/C+언어로 작성되어 있기 때문에 기본적인 C/C+언어에 대한 지식이 있어야 한다. for 루프가 나쁘지 않은 if문의 사용법은 알고 있어야 하고, 클래스와 멤버 함수, 멤버 변수에 대한 개념을 알아야 어려움이 없습니다. 'OpenCV에서 배우는 컴퓨터 비전 프로그래밍'에서 사용하는 예제 프로그램은 소스 코드를 매우 단순하고 이해하기 쉬운 형태로 작성하기 때문에 C/C+가 익숙하지 않은 분들도 충분히 공부하면서 따라올 수 있습니다. OpenCV를 완벽하게 이해하기 위해 추가로 배워야 할 학습 분야는 무엇인가요?컴퓨터 비전에서 유용한 정보를 추출하기 위해서는 머신러닝과 딥러닝을 모두 함께 공부하는 것이 좋습니다. 20최초 0년대 들어 전통적인 컴퓨터 비전 기술과 디플러 말리닌이 서로 융합되어 사용되며 그 결과, 종래에는 불가능했다 많은 하나가 현실이 되기도 합니다. 예를 들면, 2000년대 초반까지 얼굴 인식은 어느 정도 인식이 가능하다는 수준에 그쳤지만 디플러 말리닌이 적용된 얼굴 인식은 인간보다 뛰어난 경우가 많습니다. 딥러닝을 바르게 사용하기 위해서는 따로 딥러닝에 대해 공부하는 것이 좋습니다. 다만 선후관계에 관한 부분이 있는데 OpenCV와 컴퓨터 비전에 관한 공부를 하고 나서 딥러닝 강의를 듣는 것을 추천한다. 딥러닝을먼저듣고영상처리에대한이해가부족해서다시공부하는것보다는컴퓨터비전관련공부를먼저하는것이더이해하기쉬울것같습니다.​​​


    -"OpenCV에서배우는컴퓨터비전프로그래밍"강의에서는어떤점을중점적으로전달해주실건가요? "OpenCV라이브러리를이용한실장비결에대해서설명됩니다. 영상의 구조에서 시작해 밝기와 명암비의 조절, 필터링, 영상의 기하학적 변환과 같은 기본적인 컴퓨터 비전 알고리즘을 OpenCV 라이브러리와 C/C+언어를 사용하여 아래에서 직접 구현하는 비결을 설명합니다. 또 첫 980년대부터 현재까지 발전한 다양한 컴퓨터 비전 알고리즘 이론을 설명하고 이를 구현한 OpenCV클래스 및 함수의 사용법을 함께 소개하는 것입니다. 첫 00여의 다양한 실습 예제 프로그램을 통해서 컴퓨터 비전 알고리즘의 동작을 제대로 이해할 수 있습니다. 또, 최근의 버전의 OpenCV 버전을 사용하여, 전천에 유연하게 대응해 갑니다. C++쵸쯔쵸쯔 문법을 사용하고 OpenCV프로그램 코드를 작성하는 비결을 설명하고, 4.x버전에서 중요하게 다루지 DNN모듈의 사용의 비결에 대해서도 자세히 설명합니다.그리고 단순히 OpenCV 함수의 입력과 출력에 대한 설명뿐만 아니라 OpenCV 함수 내부의 알고리즘까지 함께 설명합니다. 원리를 이해하는 것으로, 각자가 직면하는 여러가지 정세에서, 수업시에 배웠던 스토리를 적절히 활용할 수 있습니다. 직접적으로 컴퓨터 비전 업무를 하지 않더라도 컴퓨터 비전에 관심이 많은 소프트웨어 개발자들에게도 다양한 알고리즘과 코딩 기법을 배울 수 있는 좋은 기회가 될 것입니다. 특히 딥러닝을 배우기 위한 선수 과목 역할도 합니다.-강사의OpenCV강의는수년간많은수강생들에게최근유행인데요. 이런 요즘 유행의 요인은 무엇이라고 보시겠습니까?​ 우선 OpenCV에 관련된 여러 저서(<영상 처리 프로그래밍 by VisualC++>,,,), 장기간 강의를 하면서 최근의 트렌드와 수강생들의 요구에 맞춘 커리큘럼의 덕분에 많은 분들이 찻 데당히시는 것 같아요. 이 외에 장점으로 선택하고 싶은 것은 깔끔한 소스 코드 작성의 요령이라고 소견할 것입니다. 실제로제강의를듣는것이예제프로그램의소스코드를이해하기쉽다는스토리를써주는데제강의가단순한이론설명강의가아니기때문에프로그래밍스킬을쌓는것도중요하다고소견할것입니다. 특히 현업에서 처음 하시는 분들 중에는 아직 C++의 첫 회에 대해서 잘 모르시는 분들도 많은데 수강생분들이 요즘 C++문법을 사용하는 예제 코드를 보여드리면 조금 어려워하시면서도 새로운 것을 배우시기 때문에 반응이 좋을 것 같습니다.또한 컴퓨터 비전 강의는 바로 알고리즘 실행 결과를 확인할 수 있다는 장점이 있기 때문에 많은 분들이 좋아해 주시기 바랍니다. 예를 들면, 사진의 밝기와 명암비를 자동으로 보정하는 것을 OpenCV 소스코드 몇 줄로 작성해 결과를 볼 수 있습니다만, 영상 처리 전후의 사진을 함께 화면에 표시해 비교해 보면, 컴퓨터 비전에 대한 재미를 느낄 수 있습니다.-8주 과정이 끝난 뒤 어느 정도 수준으로 성장할 수 있었나.오랫동안 패스트 캠퍼스에서 Open CV로 배우는 컴퓨터 비전 프로그래밍 강의를 진행해 오면서 많은 커리큘럼 전천이 있었습니다. 8주 동안 이기면 길지만 컴퓨터 비전의 모든 것을 배우기에는 짧은 시간입니다. 그렇게 주어진 시간에 다양한 컴퓨터 비전 분야에서 공통으로 필요한 스토리를 선별하여 수강생들이 체계적으로 이해할 수 있도록 지속적인 커리큘럼 전천을 가지고 왔습니다. 또한 OpenCV의 최근 버전에서 지원하는 DNN(Deep Neural Net)과 같은 기능도 소개하고 있으며 실무에 있어서 필수적인 GPU 활용과 병렬처리를 통한 최적화 기법도 전달하고 있습니다.개인적인 욕심으로는 이 수업을 통해서 대학원 석사 수준의 컴퓨터 비전 지식을 전달하려고 할 것입니다. 사실 8주 동안 가끔 석사 수준의 지식을 완벽하게 습득하는 것이 무리일 때도 있지만, 가장 작고 석사 수준에서 접할 수 있는 다양한 컴퓨터 비전 이론을 수업 때 다 다루려고 합니다. 그래서 많은 분들이 컴퓨터 비전에 대해서 제대로 된 지식을 얻어 가시기 바랍니다.8주간의 영상 데이터의 기본적인 처리비결부터 고급 컴퓨터 비전 알고리즘 이론까지 체계적으로 배워갈 수 있으며 Open CV 라이브러리를 이용해 쉽게 예제 프로그램을 만들고 그 결과를 확인할 수 있습니다. 컴퓨터 비전의 실무자뿐 아니라 영상 처리에 관심이 있는 많은 개발자 분들에게 충분히 유익한 때가 될 것입니다. 자,그럼강의실에서만나겠습니다.​


    영상인식과 컴퓨터 비전 프로그래밍, Open CV로 완벽하고 깨끗하게 정복하자.OpenCV에서 배우는 컴퓨터 비전 프로그래밍 CAMP 패스트캠퍼스 최고의 유행강의, 그 명성을 지금 바로 확인하세요!


    >


    >


    댓글

Designed by Tistory.