프로그래밍 301

[Python] CCPD 예제 동작 확인

번호판 인식 관련하여 https://github.com/detectRecog/CCPD 예제가 있어서 윈도우 CUDA 환경에서 동작시키기 위한 시행착오를 정리해 둡니다. PyTorch 이전버전 패키지 설치 CCPD 예제가 만들어질 당시에는 pytorch-0.3.1 cuda80 기반으로 작성된듯 싶은데, 지금은 엄청나게 업그레이드가 되어서 CCPD 예제를 현재 패키지 버전에서 그대로 실행할 수가 없었습니다. torch-1.11 버전에서는 소스 호환성 문제로 동작이 안되기 때문에 pytorch로 다운그레이드 후에 예제가 정상적으로 동작했습니다. 문제는 pytorch-0.3.1 cuda80를 더 이상 지원하지 않아, pip 등으로 설치할 수가 없었습니다. PyTorch 최신버전 설치 : https://pytor..

[Python] Windows 10에 OpenVino 개발환경 만들기

OpenVINO™ Runtime 설치 OpenVino로 개발한 프로그램이 정상적으로 동작할 수 있도록 Runtime을 다운로드 받아서 설치합니다. https://www.intel.com/content/www/us/en/developer/tools/openvino-toolkit/download.html 페이지에서 "Runtime"과 "Offline Installer"를 선택하여, "w_openvino_toolkit_p_2022.1.0.643_offline.exe" 파일을 다운로드 받아서 설치하였습니다. OpenVino 개발을 위한 가상환경 생성 파워쉘에서 다음과 같이 OpenVino 개발을 위한 "ov2022.1"이라는 가상환경을 설정하고, 활성화합니다. PS C:\Users\hanwh> cd D:/Dev..

[Python] struct와 numpy의 bytes 만드는 성능 비교

개요 구조체나 배열을 bytes로 만드는데, struct나 numpy를 혼용해서 사용해 왔습니다. 그러다 문득 어느 것이 더 좋은 성능을 내는지 궁금해져서 아래와 같은 성능 비교 시험을 해 보았습니다. bytes 변환 예제 아래는 동일한 구조의 정보를 bytes로 변환하는 예제로, 하나는 struct.pack() 함수를 이용하였고 다른 하나는 numpy array의 tobytes() 함수를 이용한 것입니다. from struct import pack import numpy as np struct_result = pack('

[Python] 객체의 속성 관련 정리

파이썬에서는 선언된 클래스라도 중간에 동적으로 멤버 변수 및 멤버 함수를 추가할 수 있습니다. 그래서 다음과 같은 코드도 아무런 이상없이 동작합니다. class MyClass: def __init__(self): self.data = 5 b = MyClass() print(f'isinstance(b, MyClass) is {isinstance(b, MyClass)}') print(b.__dict__) b.data2 = 100 print(b.__dict__) print(f'isinstance(b, MyClass) is {isinstance(b, MyClass)}') 그러나, 다음 예제를 보시면, 'object' 클래스에 대한 객체는 멤버 변수를 추가하려고 하면, "AttributeError: 'object..

[Git] 두 개의 저장소 합치기(merge two git repositories)

깃(Git)의 두 개의 저장소(Repository)를 합치는 방법은 다음과 같습니다. $ git clone https://gitlab.myhost.net/remain_project.git # 합친 후, 남겨질 프로젝트 저장소 복사 # cd remain_project/ # 저장소 폴더로 이동 $ git config --local user.email "hanwhhanwh@gmail.com" # 저장소의 사용자 이메일 주소 등록 $ git config --local user.name "Wonhee Han" # 저장소의 사용자 이름 등록 $ git remote add added_project https://gitlab.myhost.net/added_project.git # 합칠 저장소 $ git fetch ad..

프로그래밍 2022.05.26

[Git] push error: fatal: unable to access : The requested URL returned error: 403

문제점 및 증상 머지(merge)를 하고, 푸시(push)를 하려고 할 때, 다음과 같은 오류가 발생하면서 정상적으로 푸시(push)가 되지 않았습니다. $ git push remote: You are not allowed to push code to this project. fatal: unable to access 'https://gitlab.myhost.net/prj/test.git/': The requested URL returned error: 403 원인 분석 및 해결 방안 윈도우에 저장된 자격증명이 해당 저장소에 접근하기에 권한이 부족하여 발생한 문제입니다. git 명령으로 "gitlab.myhost.net" 서버의 다른 저장소 접근할 때 이용했던 계정이 "prj/test" 저장소에 접근을 ..

프로그래밍 2022.05.25

[Python] ubuntu 20.04에서 venv에서 OpenCV 연동하기

ubuntu 20.04에서 파이썬 버전을 확인해보면 python 3.8이 설치되어 있습니다. hunature@hunature-ThinkStation-P500:~$ python3 --version Python 3.8.10 파이썬의 pip와 venv를 사용하기 위하여 다음과 같이 패키지들을 설치합니다. hunature@hunature-ThinkStation-P500:~$ sudo apt install python3-pip python3.8-venv 다음과 같이 venv 모듈을 이용하여 vpc를 위한 가상환경을 생성하고, 활성화합니다. hunature@hunature-ThinkStation-P500:~$ mkdir -p ~/work/venv hunature@hunature-ThinkStation-P500:~$..

[Python] error: (-5:Bad argument) in function 'pointPolygonTest'

문제점 및 증상 특정 좌표가 지정된 다각형 영역에 속한지 확인하여 위하여 cv2.pointPolygonTest() 함수를 이용하던 중 다음과 같은 오류가 발생하였습니다. File "d:\Dev\VisionAI\vpc_multi\src\cmd_detector.py", line 163, in process_detection_datas(frame_no, classes, scores, boxes) File "d:\Dev\VisionAI\vpc_multi\src\cmd_detector.py", line 57, in process_detection_ if (cv2.pointPolygonTest(_polygon_pedestrain, pt_center, True) >= 0): cv2.error: OpenCV(4.5.5..

[Github] 깃허브로 무료로 호스팅 서버 만들기

깃허브를 이용하여 무료로 호스팅 서버를 만드는 방법을 정리해 둡니다. 기존 저장소를 이용할 수도 있지만, 본 글에서는 신규로 "web"라는 공개(public) 저장소를 만들어서 무료로 호스팅 서버를 구성해 보겠습니다. "web"라는 공개(public) 저장소를 생성한 다음에 다음과 같이 새로운 파일을 추가합니다. 아래와 같이 html 소스 파일명과 html 소스를 입력합니다. html 소스의 입력이 완료되면, "Commit new file"을 선택하여 html 파일을 저장소에 등록합니다. "web" 저장소의 "Settings"를 선택합니다. 왼쪽 메뉴에서 "Pages"를 선택하고, 중앙에서 "Source" 항목을 아래와 같이 "main" 브랜치에 "/ (root)" 폴더로 변경 후, "Save"를 선택합..

프로그래밍 2022.05.19

[Python] 윈도우에서 cython_bbox 설치 오류: "ERROR: Failed building wheel for cython_bbox windows"

증상 및 문제점 cython_bbox 패키지 설치시, 다음과 같은 오류가 발생하며 설치되지 않는 문제가 발생하였습니다. cl : 명령줄 error D8021 : '/Wno-cpp' 숫자 인수가 잘못되었습니다. error: command 'C:\\Dev\\Microsoft Visual Studio\\2022\\Community\\VC\\Tools\\MSVC\\14.32.31326\\bin\\HostX86\\x64\\cl.exe' failed with exit code 2 [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ERROR: Failed building wheel for..

728x90