전체 글 72

도란스(Transformers)의 추억

- 전압을 변경해주는 변압기(트랜스포머)를 옛날엔 도란스 라고 불렀죠. 아마도 혀 짤븐 일본을 통해서 들어왔기 때문에 일본을 영향을 받아 그렇게 불렀던거 같습니다.- 그들에겐 트랜스포머 라는 발음이 불가능했겠죠.. 따라서 ChatGPT 나 Stable Diffusion 모델에 사용되는 Transformer 모델도 일본인들은 아마도 "도란수포마" 라고 발음하면서 연구하고 있겟죠? ... 세종대왕님 감사합니다!- 1980년대 초에 우리나라의 표준전압을 110볼트에서 220볼트로 전격 교체하는 사건이 있었습니다. 전력전송 에너지 절감과 산업발전을 위해서 단행했던 국가차원의 조치였다고 하는데요 .. 나중에 들은 얘기론 군부독재 시절이어서 가능했던 거라고도 합니다. 선진국들중에는 아직도 110볼트를 그대로 사용하..

추억 소환 2024.09.11

폴더내 이미지들로 animated gif를 만드는 imagemagick 명령어

- 만들어진 Animated GIF 예시 파일입니다. 저 움짤을 캡쳐하여 당첨되는게 당신의 오늘 식사 메뉴 입니다~ ^^   - 저런 움짤을 만드는 명령어는 이와 같습니다.$ convert -delay 100 -loop 0 *.png animated.gif​- 현재 폴더내 모든 png 이미지들로 animated gif 움짤 만드는 imagemagick 명령입니다.- delay는 프레임간 지연시간( 밀리세컨드)- loop 는 반복횟수, 0은 무한반복- 파일명 올림차순 순서대로 gif로 들어가게 됩니다.- imagemagick은 터미널기반 영상처리 도구입니다. 맥오에스, 리눅스, 윈도우즈 터미널에서 구동 가능하죠.- 사용하려면 먼저 imagemagick 을 터미널에 설치해야 합니다.맥에선 brew insta..

맥 팁들 2024.09.11

물리적 익사와 화학적 익사

- 물에 빠져죽는걸 익사 라고 부르죠.  - 인간처럼 무거운 질량을 가지는 물체는 부력보다 중력이 커서 물리적인 익사를 합니다.  하지만 곤충처럼 작은 벌레들은 쉽게 익사하지 않죠. 이는 질량이 작기 때문이 아닙니다.- 곤충이 질량은 작지만 그만큼 부력도 작아서 원래는 역시 물리적 익사를 해야하는게 맞습니다. 작은 벌레에게도 아르키메데스의 유레카의 법칙(부력의 법칙)은 마찬가지로 성립하니까요.- 작은 곤충들이 물리적인 익사를 잘 하지 않는 이유는 물의 표면장력 때문입니다.  일단 물속에 잠겨야 물리적 익사를 할텐데 표면장력이 복잡한 곤충의 신체구조와 결합되 입수를 막는것이죠.  - 이처럼 표면장력은 모든 물질이 가지는 성질인 "경계면효과" 중 하나인데요.. 물의 경계면 효과는 이렇게 더 다이나믹 합니다...

다큐 수집 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

알파채널을 적용한 GradCAM 히트맵

- 이런식으로 그래드캠의 히트맵용 Pseudo Color를 투명도를 지정하는 알파채널값으로 대치하면 주목하는 대상물체만을 보여주는 몉보기 효과 같은 동영상이 만들어집니다.- 이것은 미디어 아트나 특수효과 분야에서 쓰임새가 있을거 같습니다. import torchfrom torchvision import models, transformsfrom PIL import Imageimport numpy as npimport cv2from imageio import mimread, mimsaveclass GradCAM: def __init__(self, model, target_layer): self.model = model self.target_layer = target_layer ..

딥러닝 2024.09.10

비디오파일의 모든 프레임들을 이미지파일로 쪼개서 저장하는 터미널 명령어

$ ffmpeg -i myvideo.avi -vf fps=fps=10 frame_%04d.png ​- 초당 10프레임으로 촬영된 비디오파일의 모든 프레임들을 이미지파일들로 쪼개서 저장하는 터미널 명령어 입니다. - 쪼개진 이미지들은 frame_0001.png, frame_0002.png , frame_0003.png ... 이런식으로 저장됩니다.​- 참고로 ffmpeg 설치명령은 이러합니다.맥오에스:$ brew install ffmpeg우분투 리눅스:​$ sudo apt install ffmpeg윈도우즈:$ scoop install ffmpeg  - 터미널에서 작동하는 이미지 처리 유틸은 imagemagick, 동영상 처리 유틸은 ffmpeg, 오디오 처리 유틸은 sox 가 있습니다.- 모두 오픈소스..

맥 팁들 2024.09.10

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

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

앱개발 2024.09.10

맥 터미널에서 병렬처리하는 유틸, Gnu Parallel

$ ls *.png | parallel 'mogrify -scale 25% {}'​- CPU 병렬처리로 현재 폴더내 모든 png 이미지를 25% 크기로 줄이는 이미지매직 + gnu parallel 명령어 입니다. - imagemagick은 영상처리를 담당하고 Gnu Parallel은 병렬처리만을 담당합니다. 둘다 오픈소스 도구 이구요~ - 당연히, 따옴표 내부의 이미지매직 명령어를 변경하면 다양한 영상처리를 병렬처리화 할수 있겟죠?​- 명령을 내리면 위 그림처럼 모든 쓰레드를 사용하여 고속연산해 줍니다.당근, CPU의 코어가 많을수록 유리 하죠.​- gnu parallel 설치하기맥오에스 터미널: $ brew install parallel리눅스 터미널: $ sudo apt install parallel윈..

맥 팁들 2024.09.10

ComfyUI로 합성데이타 생성하기

- 그림처럼 노드들을 링크로 연결하여 코딩없이도 StableDiffusion 같은 초거대AI기반 모델로 복잡한 이미지 생성을 가능하도록 한다.- 이러케 특정 기능을 수행하는 하나의 노드 연결구조를 워크플로우 하고 부르며 저장하기와 로딩으로 남이 만들어논 워플로우를 나도 사용할수 있게된다.- 이미지생성의 실행은 우상단의 Queue 버튼을 누르면 시작되며 에러가 없으면 그림처럼 이미지들이 생성된다. - 합성된 데이타는 입력한 레퍼린스 이미지와 "비슷은 하지만 새로운" 데이타가 만들어지며, 인간이 취사선택으로 이상한걸 버리면 딥러닝 학습에 적합한 오그먼테이션용 합성 데이타가 얻어지는 것이다. - 이 기술은 일종의 Oneshot LoRA 파인튜닝으로 볼수 있다.- 한장의 이미지 만으로 초거대AI 모델(SDXL)..

딥러닝 2024.09.10