본문 바로가기

CS 잡지식

pyinstaller exe 파일 run time error(Feat. cmd, -w 옵션, pyqt5,exe 파일 런타임 에러) pyinstaller는 기본적으로 pyinstaller 프로그램 파일명.py를 하게 되면, 콘솔 창을 기본적으로 띄워 준다. -w 옵션을 사용하면, exe 파일 실행 시, 콘솔 창을 띄우지 않게 할 수가 있다. ( pyinstaller [-w] 프로그램 파일명.py ) 그러나 PyQt를 사용한 exe 파일의 경우 -w를 사용하여 exe 파일을 만들게 되면 Run Time 에러가 발생을 한다. 그 이유는 PyQt를 사용한 GUI 환경인 경우에만 -w를 사용할 수가 있기 때문이다. 콘솔에서만 작동하는 exe 파일인 경우에는 반드시 -w를 제거해야 한다. -w 옵션 이외에도 exe 파일 시 런타임 에러가 나는 이유로서, 프로그램(exe)를 실행할 때, dll이 로딩되어 있지 않은 경우이 다. 나같은 경우 AI.. 더보기
AI 모델 테스트 용 동영상 자료 저장소(Feat. 비디오,mp4, 영상, dataset) https://www.pexels.com/videos/ 우리가 예를 들어서, 얼굴 인식 AI 모델 혹은 사물 인식 AI 모델을 주로 웹캠과 같은 디바이스와 연결하여 실제로 서비스를 제공한다. 그러나 그러한 디바이스가 없는 상황에서는 AI 모델을 테스트하기가 곤란한다. 위 사이트에서는 mp4 파일 형태로 테스트용 동영상을 제공한다. 더보기
Git Commit의 원리(Feat. snapshot[스냅샷], tree,parent), Object 파일의 3가지 종류(Feat. commit ID, tree ID, blob ID) 결론은 먼저 말하자면, Git Commit 명령어를 실행하여 새로운 Version을 저장하는 순간 1] 해당 Version에 대한 commit ID가 생성된다. 2] 해당 버전 파일에 디렉토리가 존재한다면 Tree 노드(=Tree ID)가 생성돼, 계층적으로 그 디렉토리 안의 포함된 파일들을 나타낸다. 3] 만약 해당 버전 파일에 디렉토리가 하나도 없고, 순수 파일(EX.txt파일)만이 존재를 한다면, blob(blob ID)으로 그 순수 파일을 나타낸다. 4] 또한 Parent 노드도 있다. 이 노드는 그 이전의 Version에 대한 정보를 담고 있는 Tree 노드이다. (아래의 그림을 참조) (Version 1은 최초의 버전이므로, Parent가 존재하지 않는다) 위와 같이 Obejct 파일은 3가지.. 더보기
CVCS vc VCS vs DVCS(Feat. GitHub, Git) CVCS( Centralized Version Control Systems, 중앙집중식 버전 제어 시스템 ) : 잘 안씀 장점 - 여러 개발자들이 함께 작업할 수 있음 - 중앙 서버는 프로젝트 전체의 히스토리를 갖고 있으므로, 데이터를 잃어버렸을 때 복구하기가 비교적 쉬움 ​ 단점: - 중앙 서버가 다운되면 프로젝트의 히스토리에 접근할 수 없게 되고, 서버의 데이터가 손실되면 프로젝트 전체의 히스토 리를 잃어버릴 수 있음. 왜냐하면, Local에 버전을 저장하지 않고, 바로 중앙 저장소에만 저장을 하기 때문이다.(매우 치명적) - 네트워크에 의존적이라 오프라인에서 작업하기 어려움 VCS( Version Control System, 버전 제어 시스템) : Ex. Git 장점 - 로컬 VCS는 사용이 간단하.. 더보기
모멘트(moment) 컴퓨터 비전에서의 "모멘트(moment)"는 이미지나 영상의 형태, 분포, 질감 등을 특성화하는데 사용되는 통계적인 측정값 입니다. 모멘트는 이미지의 픽셀 값에 대한 함수로 정의되며, 주로 이미지의 형태나 물체의 특징을 추출하고 분석하는 데 활용됩니 다. 이미지 모멘트는 다음과 같이 정의될 수 있습니다: 영역 모멘트(Area Moment): 이미지의 픽셀 값을 이용하여 이미지의 영역에 대한 정보를 제공합니다 중심 모멘트(Central Moment): 이미지의 중심을 기준으로 픽셀 값에 대한 정보를 제공합니다. 중심 모멘트는 이미지의 이동, 회전 등의 변환에 대한 불변 특성을 제공할 수 있습니다. 일반 모멘트(General Moment): 일반 모멘트는 임의의 기준점을 가지고 있으며, 이미지의 평행 이동에.. 더보기
numpy.newaxis(feat. np.newaxis) numpy라는 유명 라이브러리의 newaxis 요 표현은 무엇이냐? 간단히 이야기 해서 존재하는 numpy array의 차원을 늘려준다 보시면 되겠습니다. * 1D 는 2D가 되고 2D는 3D가 되고 3D는 4D .. 사실 간단한 Role이지만 여러가지 상황에서 적재적소 사용되더군요.. 3가지 정도의 시나리오에서 사용하기 적합해 보입니다. 첫번째, 1D array를 row vector나 column vector로 사용하고 싶을 경우지요. 아시다시피 numpy에서 array를 만들면 shape이 .. # 1D array In [7]: arr = np.arange(4) In [8]: arr.shape Out[8]: (4,) 요로케 되지오.. x자리만 4고 y자리는 공란입니다. 그러면 아주 간단하게 해결 됩니.. 더보기
Gistory(feat. .git 파일 분석 툴) localhost:8080, 즉 웹에서 동작하면서 git의 명령어들을 실행할 때마다 .git 폴더에 어떠한 변화들이 나타나는 지를 시각적 으로 알 수 있게 해주는 분석 Tool이다. 더보기
git reset(feat. commit된 버전을 삭제) *구체적인 원리는 별도의 페이지에서 정리한 것이 있으니, 구체적인 원리를 알고 싶다면 그 페이지를 확인하면 된다. reset과 revert를 사용해서 commit된 버전을 삭제하는 작업은 매우 위험한 작업이다. 혹시 모를 상황을 대비하여, [.git]을 포함한 전체 파일(드래그 부분)을 cp 명령어(copy 명령어)로 백업을 해서 혹시 모를 사 고에 대비하자! 현재 최신 버전(Head)는 버전 5이다. 그런데, 최신 버전(Head)를 5가 아닌 버전 3으로 바꾸고 싶다. 이때, git reset [버전3_Commit_Id] 명령어를 실행하면, 버전 4,5 부분은 삭제가 되고 버전 3을 [포함]한 그 이전의 버전2,1만 남게 되며, 최신 버전(Head)가 버전 3이 된다. (아래 그림 참조) 참고 사항 위.. 더보기