2024/09 52

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

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

추억 소환 2024.09.11

도란스(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