머신러닝 283

7-18 Haarcascade 특징추출(Feature Extraction) 원리와 드로우잉 스케치 OpenCV AI 안면인식

Opencv에서 오브젝트를 인식하는 대표적인 방법 중의 하나는 Haarcascade 라이브러리 모듈을 사용하는 방법이다. Haarcascade 라이브러리를 사용하여 인식할 수 있는 오브젝트는 사람의 정면 얼굴, 얼굴 안의 눈, 고양이 얼굴, 사람의 몸 각 부분들, 컬러 및 차량을 포함한다. 다음의 흑백 현상 사진 현상에서 얻을 수 있는 이미지들로부터 분명히 Edge Features 중에서 이마와 눈 사이의 E-h 특징과 입술에 대해서 Line Features 중에 L-h 특징을 확인할 수 있다. Haar의 알고리듬에 의한 안면 인식의 원리를 흑백 현상 사진이 아닌 실제 흑백이미지를 대상으로 살펴보도록 하자. 안면 인식된 사례에서 눈썹과 눈두덩이+눈 사이를 잘 관찰해 보면 눈두덩이+눈 부분이 어둡다는 사실..

머신러닝 2020.04.17

2-18 Fashion MNIST 텐서플로우 머신 러닝 Simple 네트워크 예제

2017년 구글 텐서플로우 홈페이지 머신 러닝 예제로는 MNIST 손글씨 문제였으며 2018년에는 Iris flowers 데이터 문제가 게재되었었다. 2020년 현재에도 구글 텐서플로우 홈페이지 야기 저기에 그 흔적들이 남아있지만 Keras 중심으로 업그레이드가 진행되면서 다양한 예제들을 선보이고 있다. 비록 beginner 즉 초보자를 위한 예제라고는 하나 실제로 다루어 보면 어느 주제 하나라도 초보자가 그 내용을 이해하기는 쉽지 않다는 점을 지적해 둔다. MNIST 손글씨 예제의 경우만 하더라도 TensorFlow2.0 이전의 기법으로 학습을 해왔지만 지금부터는 Keras API를 사용하는 문제로 격상되어버려 TensorFlow2.0 이전의 기법들과는 단절이 커 보인다. 이러한 갭을 매우기 위한 제 ..

머신러닝 2020.02.27

1-17 TensorFlow Lite 안드로이드 스튜디오 업로딩 예제

2017년 구글 TensorFlow 홈페이지에는 MNIST 손글씨 숫자 예제로부터 시작하여 그 다음에는 Iris Flowers 분류문제 그리고 TensorFlow 2.0을 배포하는 최근에는 Keras MNIST 와 TensorFlow Lite 예제들을 게시하고 있다. 수년 전 TensorFlow를 연습하던 초기에는 머신러닝 학습 결과를 스마트폰과 같은 IOT 디바이스에 포팅하는 작업을 감히 넘볼 수 조차 없었으나 그간 초보적이긴 하지만 안드로이드 코딩에 익숙해졌기때문에 안드로이드 스마트폰에 파이선 머신러닝 결과를 안드로이드 코드에 첨부하여 업로딩 하는 것이 가능한 정도가 되었다. 안드로이드 스튜디오 자바 코딩의 아주 기초적인 사용법은 다음의 최근 블로그 요약을 참조하자. 2-1 Android Studio..

머신러닝 2020.02.17

1-7 Google TensorFlow 홈페이지의 Keras MNIST Deep Learning 예제

Deep Learning 이란 무엇인가? Hidden Layer 란 무엇인가? 이런 개념을 간단히 이해하고 있는가? 앞 장의 예제(http://blog.daum.net/ejleep1/932)를 살펴보면 1X784 데이터와 784X10 웨이트 데이터와 10개의 바이아스를 사용하여 hypothesis states를 계산하고 활성화 함수 Softmax를 적용하여 Cross Entropy Cost 함수를 구성 후 Optimizer를 설정하여 경사하강법을 적용하게 된다. 여기에 Dense(128)처럼 은닉층이 추가될 때 One layer 만큼 Deep 해졌다고 하며 이때에 도입되는 웨이트 매트릭스의 크기가 128X10 이라면 128 만큼 Wide 해졌다고 볼 수 있다. 즉 784X10 웨이트 매트릭스 사용에서 (..

머신러닝 2020.02.09

인공지능에 RNN에 의한 학습법 및 UNSEEN 신종코로나감염지자수 데이타 예측

2020년 1월에 돌발적으로 발생하여 퍼지고 있는 중국 우한폐렴에 의한 신종 코로나 바이러스 감염자 수 예측을 위한 RNN 알고리듬을 살펴보자. RNN 알고리듬은 머신 러닝 알고리듬 중에서도 시계열 데이터 방식으로 학습을 시킬 수 있는 특이한 알고리듬으로서 충분한 수의 시계열 입력 데이..

머신러닝 2020.01.30

1-11 matplotlib 에 의한 MNIST 수기문자 28X28 픽셀 흑백 그래픽 출력

텐서플로우 1.15.0 버전에서 MNIST 코드를 실행하고 읽어 들인 수기 문자 중의 하나를 matplot 라이브러리를 사용 흑백으로 출력해 보자. 함수 gen_image(arr)에서 arr은 placeholder에서 읽어 들이는 1X784 데이터 하나를 arr 로 넘겨주면 28X28 로 reshape 하여 출력한다. 함수 gen_image(arr)은 Session 모드에서 불러 사용한다. placeholder 명령에 의해 읽어 들이는 수기 문자는 1X784 로서 28X28 픽셀로 변환하여 출력하도록 한다. 흑백 출력에서 배경색인 0은 흰색으로 글자에 해당하는 픽셀의 색은 255를 검정색으로 하여 출력된다. 텐서플로우에서는 Session 단계 이전에서는 플로우 챠트에 해당하는 Graph 처리 단계이며 S..

머신러닝 2020.01.28

1-6 TensorFlow 1.15.0 과 2.0 버전 사이에서 Keras MNIST 예제

Keras 라이브러리 지원 하에서 MNIST hand written digits 예제를 다루어 보자. MNIST 예제는 현재 아직도 미국에서 개인들이 사용하는 우편물에서 반드시 수기로 기입해야 하는 지역 코드 즉 ZIP 코드를 대상으로 0∼9까지의 숫자를 6만개의 학습용(training) 데이터와 동일한 품질의 테스트용 데이터 1만개를 디지털화하여 데이터베이스를 구성하였고 LeCUN이 인터넷에 정리하여 올려 두었다. 다음의 그림을 참조하자. 수많은 수기 문자들이 있겠지만 인간의 지능으로 숫자 클라스 “0”에서 “9”까지를 보면 인식이 가능하다. 다양한 형태로 쓰여진 예를 들면 “0”의 다양한 수기 샘플들이 있겠지만 이들 모두는 하나의 라벨 값 “0” 으로 두면 될 것이다. 이 MNIST 수기문자에서 동일..

머신러닝 2020.01.26