딥러닝 7

[magick] 폴더속 이미지들 중 truncated 이미지만 찾아내는 imagemagick 명령어

$ magick identify -format '%f: %C\n' * | grep -i truncated- 현재폴더 내의 수천~수만개의 이미지들 중에 truncated 된 이미지가 있는지 찾는 imagemagick 명령어 입니다. - truncated image(깨진 이미지)란 이 그림처럼 이미지 일부가 미센싱 등의 이유로 미완성된 이미지를 말하는데 ..회색부분은 검정색으로 나타나는게 더 일반적입니다.- 이렇게 이미지 뷰어로 보이면 그나마 다행인데 아예 미리보기등의 뷰어로 안보이는 이미지 파일들도 존재하죠.- 수만 수백만장의 이미지 데이타셋으로 딥러닝을 학습하다가   truncated image 오류가 발생하면 아주 난감한데.. 그 이유는 대부분 딥러닝 학습코드의 data_loader 에는 파일명 정보를..

쉬뢰딩거의 오그먼테이션

- 몇 년 전에 정부 AI과제를 수행 중에 중간평가 심사를 받을 때 일어났던 일입니다.- 과제 심사위원들이 딥러닝에서 데이타가 점점 더 중요해지고 있다는 소리를 어디서 들었는지, 학습에 사용된 클래스별 데이터의 원래 수량과 각각의 오그먼테이션(Augmentation, 데이터 증강) 방식별 부풀려진 수량을 테이블로 정리해서 알려달라고 요구하였지요.- 하지만 데이타 전처리 타임이 아닌 학습 타임(train time)에 오그먼테이션을 하기 때문에 수량을 산정하기가 어려운 문제가 있었습니다.- 다시 말하면, 학습타임에 확률적으로 오그먼테이션된 이미지를 발생시켜서 메모리에 임시저장했다가 모델에 입력하고 바로 지워버리는 방식으로 반복적으로 진행하기 때문에 정확한 오그먼테이션 이미지 수량을 집계하는 게 어려운 것입니..

딥러닝 2024.09.25

라벨링의 추억

- 제조업 공장에 가본 적이 있으신가요?- 요즘 공장엔 사람이 거의 없죠.. 공정상의 대부분이 자동화되었기 때문입니다. 그런데 그런 공장에도 사람이 남아있는 유일한 곳이 있습니다. 바로 제품의 결함(Defects)을 찾아내려고 육안으로 비전(Vision) 검사를 하는 곳입니다.- 라벨링(Labeling)은 아직은 인간 만이 할 수 있습니다. 왜냐고요? 지구상에서 인간이 가장 비선형적인(Non-Linear) 존재들이기 때문 입니다. 일찍이 뉴턴도 혀를 내두르며 두 손 두 발 다 들었을 정도죠.- 비선형적이라는게 무엇일까요? 바로 예측이 불가능하다는 것입니다. 실측의 결과가 그때그때 다르며, 개인마다 다릅니다.- 라벨링을 수학적 영상처리 등의 컴퓨터 알고리즘으로 자동화하려고 잔머리를 굴리는 순간, 컴퓨터는 ..

추억 소환 2024.09.19

누설(Leakage)의 여러가지 모습들

-  누수(Water leakage)- 물이 파이프 밖으로 새어 나가는 현상- 10살 무렵부터 겪어봄, - 문제점으로는 수도요금이 올라감. - 누전(Current leakage)- 소중한 전류가 전선 밖으로 새어나가는 현상- 15살 무렵부터 겪어봄- 사람몸이 전기에 감전되는것도 누전현상 중 하나임- 문제: 전기요금이 올라감 - 메모리 누설(Memory leakage)- 20살때 부터?- 실행중인 프로그램이 의도치 않게 컴퓨터의 메모리를 야금야금 먹어가는 현상- 문제: 프로그램이 몇달간 잘 돌다가 갑자기 죽음. 원인을 알기가 매우 어려움.  - 스펙트럼 누설(Spectral leakage)- 서른살때(?)부터 겪어 봄- 유한한 신호 표현의 한계 때문에 목표한 주파수 대역이 퍼지는 현상.- 문제: 통신 대역..

추억 소환 2024.09.11

[파이썬] Rotate-invariant realtime template matching using SAM model

- 메타의 SAM(세그먼트 애니띵) 모델로 실시간에 이미지내 물체의 템플릿을 만든후 만들어진 템플릿으로 이미지내에서 비슷한 물체를 매칭(OpenCV로 수학적으로)하는 방식입니다.- 실시간 템플릿은 이미지에서 마우스 포인터로 찾고자하는 물체내부를 클릭하면(Visual Prompt ) SAM 모델로 물체의 윤곽선을 세그먼테이션하며 그 윤곽선으로 Best-fit된 bbox를 수학적으로 만들고 그 내부 이미지를 템플릿으로 저장합니다.- 그리고 저장된 템플릿으로 템플릿 매칭을 하는데 회전왜곡에 불변하도록 매칭하는 알고리즘으로 회전된 물체도 같은 모양이면 찾아주게 됩니다.- 단,  90도 배수에 해당하는 각도로 회전된 물체는 매칭율이 잘 않나오는 문제가 있습니다. 나머지 모든각도에 대해선 잘 찾아줍니다.import..

학습된 모델로 실시간 추론하는 아이폰 앱 만들기

지난번 게시물에선 맥오스에 내장된 CreateML로 이미지 데이타셋을 학습시켜서 mlmodel 모델파일을 만드는걸 따라해 보았다. 이번엔 그렇게 만들어진 모델파일로 아이폰 앱을 만드는 과정을 살펴보겠습니다.  - 지난번 게시물의 마지막에 보였던 학습한 모델 내보내기 창입니다.저 창에서 우측 상단의 Get 버튼을 누르면 MyImageClassifier1.mlmodel 이라는 파일이 프로젝트 폴더에 저장됩니다.  - 용량이 매우 작죠.  겨우 몇 KB에서 커봐야 몇백 KB 수준입니다.   - 아래 사이트에서 swift로 만들어진 image 분류앱  예제파일 다운로드 합니다.https://developer.apple.com/documentation/coreml/model_integration_samples/c..

앱개발 2024.09.11

맥오에스 내장도구로 딥러닝 학습하기. (무설치, 무코딩, 무고인물)

- 나름 역사가 제법 된, 맥용 딥러닝/머신러닝 개발도구 입니다.- 처음엔 CoreML 이란 이름을 달고 나왔드랬죠.- 딥러닝 알고리즘을 몰라도 학습이 가능한 하이엔드 유틸러티로 사용이 쉽고 심플합니다.   - 그림처럼 다양한 딥러닝 학습이 가능한데, 그중 우리는 가장 간단한 이미지 분류를 해 보자구요.- 참고로 두번째 아이콘인 멀티레이블 이미지 분류기는  이미지 한장에 복수개의 레이블을 갖는 분류기를 말합니다.   - 이 짤엔 트레이닝 데이타 영역에 이미 데이타가 채워진게 보이지만, 당근 원래는 비어있습니다.- 특이한건, 애플의 앱 답게 이미지들이 들어있는 폴더를 드래그앤 드랍 하기만 하면  학습 데이타셋 입력이 된다는 것이죠~   - 이런식으로 클래스 별로 이미지들이 들어있는 폴더들의 상위폴더(여기선..

앱개발 2024.09.10