2024/09 58

주파이터(Jupyter) 노트북에서 Octave(매트랩) 돌리기

- 저는 Jupyter Notebook을 주피터가 아닌 주파이터 노트북이라고 부릅니다. 주피터(Jupiter)는 목성을 뜻하는 단어의 발음이기 때문입니다.- Octave는 비싼 공학용 프로그램인 매트랩의 오픈소스 클론입니다. 골짜란 이야기죠~ 하지만 매트랩과 코드가 90이상 호환됩니다. 비싼 툴박스들을 빼면 신호처리나 영상처리 정도는 충분히 옥타브로도 구동이 가능하죠.- Octave = Poorman's Matlab.  - 그동안 이렇다할 전용 편집기가 아쉬었던 옥타브 ...가 주파이터 노트북에서 돌아간다니~ - 이거 대박인데요!​- 하지만 파이썬 덕분에 매트랩의 입지는 점점 줄어드는중 ... - 어쩌면 파이썬 창궐의 최대 피해자는 매트랩 일지도 모르겠군요 ~!

기타 2024.09.30

Sobel Filter를 데이타를 학습시켜서 만든다고?!

- 지난번에 올린 New 이진화 기술에 이어 이번엔 Data-Driven으로 에지 필터를 학습시켜 보았습니다.- 3x3 콘볼루션 필터의 커널 가중치를 랜덤하게 발생시킨 후 가중치를 SGD 로 조금씩 바꿔가면서 필터링한 결과와 입력된 이미지의 소벨필터 결과(Ground Truth)를 비교하여 로쓰값을 만들어 로쓰가 줄어드는 방향으로 가중치를 갱신하였습니다.- 그렇게 epoch =5000 정도로 학습시켰더니..   - 학습에 사용된 이미지는 70장 정도 였구요. Loss 계산용 이미지 비교함수는 POC(위상한정 상관)함수를 사용했지요.- 그 외에도 커널의 가중치합이 0이 되도록 abs(sum(weights)) 로쓰도 추가했습니다.loss = alpha * loss_poc + (1-alpha) * loss_z..

컬러 픽커(Color Picker) 유감

- 일반적인 ColorPicker 의 Hue 범위는 0~360도 int 로 주어지나, OpenCV의 Hue 대역은 0~180 int 값만 가질수 있습니다.- 아마도 uint8 자료형 내에서 모든 Hue 를 표현하려고 한거 같습니다.- 그리고 Saturation과 Value 값도 OpenCV에선 0~255범위를 가지지만 일반적인 ColorPicker 에선 0~100 으로 표현합니다. - 혼동없이 컨버팅해서 바꿔주어야 하는데, 이게 아주 번거롭네요.​- 혹시, HSV 를 opencv 값 그대로 ([0, 180], [0, 255], [0, 255]) 범위로 표출해주는 Color Picker 앱은 없을까요?

맥 팁들 2024.09.30

소소한 맥오에스 앱개발 후기들

- XCode로 개발한 맥오에스앱에 아이콘을 실수없이 넣는방법을 알아내는데 일주일 걸렸다 --;  xconfig 까지 건드려줘야 하는거였다~-  Swift 나 Objective-C 가 아닌 C++ 언어로 맥오에스앱을 만들고 애플 앱스토어에 올리는게 만만치 만은 않다는걸 깨달았다.- 한번 올린 앱을 제거하는 방법도 알아냈다. 각 나라에서 다 내려야하고 메뉴가 꼭꼭 숨어있었다는 ...- 그럴듯한 앱 아이콘을 쉽개 만드는 보조앱도 몇개 확보하였다.-  ESC 같은 앱 작옹과 무관한 키동작에 무반응하도록 최소한의 극한 테스트도 해야함을 알게되었다.- 키보드 핫키방식보다는 마우스 팝업메뉴가 더 안정적이란 사실도 배웠다.- 심사에서 하도 여러번 탈락했더니 이젠 앱 업로드 절차가 저절로 외워지는 경지에 이르었다 ,-..

앱개발 2024.09.28

삼국지의 추억 - 구석

- 구석은 중국 역사를 통틀어도 조조, 손권, 왕망, 이연 ...등 10명이 안되는 인물들만 누렸던 황제에 준하는 아홉가지 특권 중의 특권이었다고 전해진다.- 저 그림은 민회가 고우영 선생의 삼국지에 구석이 묘사되는 장면이다.- 구석의  구체적인 항목을 현대적으로 해석하면 이렇다고 한다.1. 거마: 누런말 여덜필, 검은황소 두필을 황제로부터 하사 받는다. 이것은 황제에 준하는 행차를 할수 있는 특권을 의미한다고 한다.3. 악단 소유: 악단과 가무단. 십일무 팔일무를 추는 가무단을 집에 소유하고 수시로 잔치를 베풀수 있는 권한4. 황제의 거처에 사용하는 컬러를 사용할수 잇는 권리.5. 황궁에서의 자신의 지위를 드러낼수 있는 권리. 6. 호분: 300명의 특별 친위대를 거느리는것, 정예병의 호위무사들을 거느..

추억 소환 2024.09.28

[터미널] mc(한밤중 명령기)로 서버에 파일 전송하기

- 맥이나 리눅스용 터미널엔 mc 라고 부르는 오래된 CLI 앱이 있습니다.- 터미널용 유틸리티를 앱이라고 부른게 약간 이상하긴 하지만 그래도 CLI(command line interface)에도 엄연히 프로그램이 돌아가는 공간이므로 앱이라고 부르기로 합시다~- 여하튼 mc를 실행하면 터미널 창에 좌우로 패널이 두개나 보이면서 좌측과 우측에 같은 컴퓨터의 파일시스템이 보여지게 됩니다.- 그때 우측 패널을 키보드로 경로를 조작해가면서 컴퓨터 내의 파일이나 폴더를 복사, 삭제, 이동, 생성 등을 하면서 파일시스템을 시각적으로 편하게 관리하는게 가능하지요.- 놀라운건 ssh 프로토콜로 맥이나 리눅스 서버와도 파일 이나 폴더의 복사가 가능하다느 것! - 우측 메뉴에서 ssh 파일서버 메뉴를 누르고 아이피번호 등..

맥 팁들 2024.09.27

[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

제조업 이미지도 CutOut 오그먼테이션이 가능하다고~?

- 학습타임 오그먼테이션으로 유명한 Albumentation 패키지로 CutOut 한 이미지결과를 실시간에 애니메이션으로 표시하고 분석하는 코드입니다.- 컷아웃(잘라내기) 오그먼테이션은 모델의 일반화 성능 향상에 매우 효과적이어서 서비스업 데이터에 대한 이미지분류망이나 ObejctDetction 딥신경망에도 많이 쓰입니다. 클래스 범주가 무너지기 직전까지 이미지속 물체의 일부를 잘라내어 딥신경망을 강하게 키우려는 단련법인 셈이죠. - 인고지능 분야에사 데이타 오그먼테이션의 철학은 "나를 죽이지 못할수록, 나는 더 강해질 뿐이다." 이란 유명한 말로 정리가 되죠.- 하지만 제조업 결함검출 이미지 에서는 사용이 위험하죠. 왜냐하면 저 그림처럼 레나얼굴은 부분이 가려져도 여전히 레나이지만, 작은 결함들은 가려..

딥러닝 2024.09.25