Lableme로 Coco Dataset과 VOC Dataset 만들기

공대생의 팁 2023. 2. 18. 21:12

 

 고성능의 인공지능을 만들기 위한 가장 중요한 작업 중 하나는 최대한 많은 양질의 데이터를 확보하는 것입니다. 상상을 뛰어넘는 인공지능의 놀라운 발전을 보았을 때 마치 AI를 연구하는 사람들이 고상한 기술을 사용하여 인공지능을 만드는 것처럼 보이지만 안타깝게도 학습 데이터가 확보되지 않은 인공지능은 고성능을 발휘하기 어렵습니다.

 

 그렇다고 해서 데이터만 잔뜩 확보했다고 하여 고성능의 인공지능 기술이 뚝딱 하고 만들어지는 것은 결코 아닙니다. 확보된 데이터를 인공지능이 학습할 수 있도록 전처리 하는 과정이 필요한데 주어진 사진에서 학습하고자 하는 물체의 이름과 위치 등을 표시하여 인공지능이 이를 학습할 수 있도록 만들어주어야 합니다. 흔히 이 전처리 과정을 '레이블링(Labeling)이라고 합니다.

 

사진의 물체 정보 분류(왼쪽), 사진의 물체 위치를 네모상자로 표시(중간), 사진의 물체 위치를 직접 표시(오른쪽)

 

 산업 분야에서 인공지능의 활용 영역이 확대됨에 따라 수집된 데이터의 전처리를 전문으로 하는 기술에 대한 수요가 늘어났고, 이를 처리할 수 있는 성능 좋은 Labeling 기술들이 소개되고 있습니다. 단지 사진을 선택했을 뿐인데 사진 속 특성(Feature)을 추출하고 이에 맞는 Labeling 작업까지 자동으로 해주는 기술이 등장할 만큼 지금 이 순간에도 좋은 도구들이 소개되고 있습니다.

 

 하지만, 인공지능을 시범 도입하기 위해 고가의 Labeling tool을 구매하여 사용하는 것은 상당히 부담스러울 수 밖에 없습니다. 다행히도, 자신의 Field에 인공지능 적용 실용성 여부를 검토할 수 있는 데이터셋 전처리를 가능하게 해주는 무료 도구들이 오픈소스로 공개되어있습니다. 이번 포스팅에서는 지금 이 순간에도 무료로 공개되어 있으며, 누구나 쉽게 어떤 환경에서도 사용할 수 있는 LabelMe를 소개드리도록 하겠습니다.

LabelMe는 pip로 설치하여 바로 사용하실 수 있습니다.

 

$ pip install labelme pyqt5 pyside2

 

혹은 아래의 사이트를 통해 소스코드를 직접 설치하실 수 있습니다.

 

https://github.com/wkentaro/labelme

 

GitHub - wkentaro/labelme: Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag

Image Polygonal Annotation with Python (polygon, rectangle, circle, line, point and image-level flag annotation). - GitHub - wkentaro/labelme: Image Polygonal Annotation with Python (polygon, recta...

github.com

 

 labelme를 실행하면 상당히 직관적인 UI툴을 갖추고 있는 것을 보실 수 있습니다. 

 

 

 레이블링을 수행하고자 하는 이미지를 불러온 다음 마우스 오른쪽 버튼을 클릭하여 'Create Polygons'를 클릭하여 이미지의 객체 주변에 점을 찍어가며 객체를 표시해줍니다.

 

 

 주변에 점을 찍다 한 바퀴 정도 돌게되여 처음 찍은 점으로 돌아오게 되었을 때 1개의 폴리곤이 완성되며 이 때 표시한 객체의 속성을 입력해줍니다.

 

 

 Labeling이 완료되면 위와 같이 작업이 완료된 모습을 확인하실 수 있습니다. 혹시 표시하고자 하는 객체를 네모 모양으로 하고싶으신 분은 'Create Rectangle'을 선택하여 표시할 수 도 있습니다.

 

 

 Object Detection을 수행하는 방법과 같이 Rectangle로 객체를 감싼 다음 Label을 붙여주면 됩니다.

 

 

 지금까지 진행한 작업들을 확인해봅니다. LabelMe로 작업하였던 내용들이 이미지 폴더에 함께 들어있는 것을 확인하실 수 있습니다.

 

 

 

Pascal VOC 방식의 Dataset 만들기

 

  지금부터 LabelMe로 만든 Label 정보들을 인공지능이 학습할 수 있도록 전처리과정을 통해 Dataset을 만드는 과정을 설명드리도록 하겠습니다. 데이터를 학습할 때 보통 COCO 와 Pascal VOC 방식의 Dataset이 주로 사용되고 있습니다. LabelMe 저자는 LabelMe로 Label을 적용한 정보를 COCO 혹은 Pascal VOC로 변환해주는 소스코드를 제공하고 있습니다. 아래 링크를 통해 다운로드 받으실 수 있습니다.

 

https://github.com/wkentaro/labelme/tree/main/examples/instance_segmentation

 

 

1. Pascal VOC로 변환(labelme2voc.py)

 

 먼저 자신이 Label한 클래스의 명단을 labels.txt 파일로 아래와 같이 작성해주세요. 저의 경우 객체가 고양이 단 하나 뿐이므로 classcat 하나입니다.

1
2
3
__ignore__
_background_
cat
cs

 

 다음으로 lableme2voc.py를 실행하여 이미지와 Label정보가 담긴 폴더의 내용으로 VOC 데이터셋을 생성합니다.

 

$ python labelme2voc.py '이미지와Label정보가 담긴 폴더명' 'VOC데이터셋 폴더명' --labels labels.txt

 

해당 명령어를 수행하면 아래와 같이 폴더들이 생성되는 것을 확인하실 수 있습니다.

 

 

 

 SegmentationObjectVisualization 폴더의 내용을 보시면 아래와 같이 Label이 잘 되어있는 것을 확인하실 수  있습니다.

 

 

2. COCO로 변환(labelme2coco.py)

 

 다음으로 Coco Dataset으로 변환하는 방법을 살펴보겠습니다. 위에서 VOC Dataset을 만들때 사용하였던 label.txt에 자신이 만든 Label의 클래스를 적어주신 다음 labelme2coco.py를 사용하여 다음과 같이 실행해줍니다.

 

$ python labelme2voc.py '이미지와Label정보가 담긴 폴더명' 'VOC데이터셋 폴더명' --labels labels.txt

 

 위 명령어를 실행하면 COCO 양식의 데이터셋이 생성된 것을 확인하실 수 있습니다.

 

 

Visualization 폴더 내용을 보면 Label이 적용된 것을 확인하실 수 있습니다.

 

 

 

300x250

영상 및 이미지 인공지능 비전 알고리즘 오픈소스 - MMCV

공대생의 팁 2023. 1. 27. 00:18

 

2022년 이미지 창작 알고리즘인 Dalle-2의 등장은 학계를 너머 일반인들에게도 상당히 뜨거운 기술이었습니다. 단지 비슷한 사진을 생성하는 GAN의 한계를 뛰어넘어 오직 인간의 창의력으로만 가능할 것만 같았던 창작의 영역까지 인공지능이 정복했다는 것은 인공지능의 기술이 어디까지 발전하였는지 심지어 사람의 한계를 뛰어넘었는지 확인할 수 있던 순간이었습니다. 반면, 오직 인간만의 영역이라 생각했던 미술 분야 마저 인공지능이 정복하지는 않을까 우려하는 분위기도 보입니다.

 

이토록 AI의 발전속도는 다른 분야와는 비교할 수 없을 정도로 빠르게 변화하고 있는데다 불과 몇 달 만에 더 좋은 성능의 알고리즘이 등장하는 것은 AI학계에서는 일상이 되었습니다. 그러다보니 종종 좋은 아이디어를 가진 알고리즘도 등장하였지만, 빠른 변화 속에 묻혀버린 경우도 없지 않아 있습니다.


이번에 소개드리고자 하는 MMCV는 흔히 MMDetection라는 이름의 알고리즘으로 사람들에게 알려져있으며 지금까지 선보인 Vision 인공지능 알고리즘들을 모아서 단 하나의 프로젝트로 여러 종류의 모델을 사용할 수 있게 해줍니다.

 사실 이렇게 여러 종류의 알고리즘들을 종합하여 활용할 수 있게 하는 프로젝트는 메타(페이스북) AI연구소에서 만든 Detectron의 사례가 있습니다. Detectron 또한 MMCV처럼 모든 종류의 알고리즘을 하나의 프로젝트로 사용할 수 있다는 장점이 있으나 Detectron이 Linux 기반에서 만들어져 Windows에서 사용하기 위해서는 일부 코드를 손봐야 하는 불편함이 있었습니다. 하지만 MMCV는 Windows는 물론 Linux, MacOS 등 어떠한 환경을 가리지 않고 사용할 수 있도록 만든 점이 MMCV의 큰 장점이라 할 수 있습니다.

https://github.com/open-mmlab

 

 MMCV는홍콩중문대학(The Chinese University of Hong Kong) 멀티미디어 연구실(MMLab)에서 박사과정이었던 카이첸의 주도로 개발되었으며, 2018년 MMDetection과 함께 공개되었습니다. 현재 그는 홍콩중문대학을 졸업하여 상하이 AI Laboratory에서 일하고 있으며, 그가 만든 MMCV 프로젝트는 OpenMMLab의 맴버로서 지금까지 전세계의 인공지능 개발자들이 사용하고 있습니다.


https://chenkai.site/

 

Kai Chen

Kai Chen is currently a Research Scientist & PI at Shanghai AI Laboratory. He is leading the OpenMMLab team, which targets at developing state-of-the-art computer vision algorithms for research and industrial applications, as well as building influential o

chenkai.site


MMCV 설치

 

 MMCV를 설치하기에 앞서 자신의 개발 환경에서 Pytorch를 설치한 다음 MMCV를 설치합니다. 자신의 환경에 적합한 MMCV 환경을 구축해주는 Openmim을 설치합니다.

 

$ pip install openmim

 

자신이 설치하고자 하는 MMCV의 버전이 1.x일 경우 mmcv-full을 설치합니다.

 

 $ mim install mmcv-full

 

 만약 자신이 설치하고자 하는 MMCV의 버전이 2.x 이상일 경우 mmcv를 설치해주세요.

 

$ mim install mmcv

 

Python을 실행하여 mmcv가 잘 설치되었는지 확인합니다.

 

import mmcv
print(mmcv.__version__)

 

 축하합니다! 지금부터 여러분은 MMCV를 사용할 수 있게 되었습니다.

 

Config

 

 MMCV을 원하는 목적에 맞게 사용하기 위해서는 MMCV 라이브러리에서 제공하는 Config의 구조를 이해하는 것이 매우 중요합니다.

 MMCV의 Config는 자신이 설계하고자 하는 모델을 직접 설정할 수 있게 해주는 설계도라 할 수 있습니다. MMCV의 라이브러리에서 직접 설정한 기존 모델들은 모두 Config파일로 제공되며 자신이 원하는 모델의 Config 파일을 원본대로 학습할 수도 있고, 자신이 원하는 성능이 구현될 수 있도록 Fine tuning하여 사용할 수도 있습니다.

 

 Config의 기초 원리를 자세하게 정리되어 있는 포스팅이 있어 아래의 링크를 통해 학습하실 수 있습니다.

 

https://better-tomorrow.tistory.com/entry/MMCV-%EC%9D%98-Config

 

MMCV 의 Config

# G.py _base_ = ['./base.py'] item = dict(a = {{ _base_.item1 }}, b = {{ _base_.item2.item3 }}) https://mmcv.readthedocs.io/en/latest/understand_mmcv/config.html Config — mmcv 1.3.16 documentation Config Config class is used for manipulating config and c

better-tomorrow.tistory.com

 

 MMDetection에 설정된 모델들은 config 폴더에 있으며 자신이 원하는 모델의 config를 찾아서 사용하면 됩니다. 아래의 코드는 Mask R-CNN의 config 파일 중 하나입니다.

 

mmdetection/configs/mask_rcnn/mask_rcnn_r50_fpn_1x_coco.py

1
2
3
4
5
_base_ = [
    '../_base_/models/mask_rcnn_r50_fpn.py',
    '../_base_/datasets/coco_instance.py',
    '../_base_/schedules/schedule_1x.py''../_base_/default_runtime.py'
]
cs

 

 config 파일의 소스코드를 확인해보면 _base_를 통해 config 설정들을 상속하고 있는 것을 확인하실 수 있습니다. 각 소스코드를 간단히 설명드리자면

 

../_base_/models/mask_rcnn_r50_fpn.py

학습하고자 하는 모델의 구조를 나타냅니다.

 

../_base_/datasets/coco_instance.py

학습하고자 하는 데이터셋을 설정합니다.

 

../_base_/schedules/schedule_1x.py

optimizer, epoch 등의 학습 정책을 설정합니다.

 

../_base_/default_runtime.py

학습 방식(Single, Multiple)등을 설정합니다.

 

 지금까지 MMCV에 대해 기본적인 내용들을 설명드렸습니다. MMlab에서 공개중인 MMDetection과 MMSegmentation등의 라이브러리를 사용하여 다양한 인공지능 모델들을 체험해보시길 바랍니다!

300x250

웹사이트(브금저장소)에서 재생되는 배경음악을 다운로드 하는 방법

공대생의 팁 2023. 1. 24. 13:26

 

 멜론, 유튜브뮤직 등 요즘은 음원 스트리밍 서비스들이 워낙 많아 인터넷 초창기 시절처럼 불법으로 mp3를 다운로드 받을 필요 없이 월 구독비용만 지불하면 인터넷이 되는 어느곳이든지 음악을 들을 수 있는 세상을 살고 있습니다.

 

 그렇지만 종종 인터넷이 되지 않는 기기와 같이 스트리밍 서비스를 사용할 수 없는 환경에서는 부득이하게 음원을 mp3로 변환해서 사용해야 하는 경우가 있습니다. y2mate와 같이 유튜브 영상에서 음원을 추출해주는 서비스가 있기에 음원을 확보하는 것은 어렵지만은 않습니다.

 

 음원파일을 구할 수 있는 사이트 중 하나였던 브금저장소(BGM Store)에서도 과거에는 다운로드를 할 수 있었으나 최근에는 회원 외에는 다운로드가 제한된 것을 확인할 수 있습니다.

 

 

 Chrome(Microsoft Edge) 웹브라우저에서 자신이 확보하고 싶은 음원 페이지에 접속 하신 후 해당 음원의 재생 버튼을 클릭하신 다음 F12 버튼을 클릭합니다.

 아래와 같은 설정 창이 나타나면 점 세개(…) 버튼을 클릭하신 다음 도크 사이드(별도의 창으로 도킹 해제)를 설정하여 넓은 화면으로 설정창을 변경해줍니다.

 

 

 넓어진 도구 창에서 '응용 프로그램' 탭 선택 후 '프레임→top→미디어 ' 메뉴를 탐색하시면 재생중인 음원의 mp3 파일이 있는 것을 확인하실 수 있습니다.

 

 

 미디어 메뉴에 있는 mp3 파일 부분을 더블클릭하면 웹브라우저에서 mp3 파일의 다운로드가 시작됩니다.

 

300x250

Windows에서 scann 라이브러리 설치하기

공대생의 팁 2023. 1. 5. 00:41


인공지능 프로그래밍 개발을 하다보면 거의 대부분의 라이브러리가 Linux를 기반으로 설계되어 있습니다. 그러다보니 Windows 환경에서 개발을 시도하려 하다보면 Ubuntu에서 단지 한 줄의 명령어 입력으로 해결되는 과정이 번거롭게 되는 일들이 많습니다. 특히 특정 패키지에 종속된 패키지를 설치할 때 이를 해결하는 것이 상당한 시간이 소요 되는 경우가 많습니다.


이번 포스팅에서는 Google Research에서 개발한 scann 라이브러리를 Windows 환경에 맞추어 설치하는 방법에 대해 소개드리고자 합니다.

 

ScaNN

 ScaNN(Scalable Nearest Neighbors)은 규모에 따라 효율적인 벡터 유사성 검색을 수행할 수 있는 라이브러리입니다.

 

 

 ScaNN은 크기와 분포가 다른 데이터셋에 맞도록 구성할 수 있습니다. Tensorflow와 Python API를 모두 갖추고 있으며, 라이브러리가 대규모 데이터셋에서 강력한 성능을 발휘할 수 있게 해줍니다

 

 Linux 환경에서 ScaNN은 다음과 같은 명령어 단 한줄로 바로 설치가 가능합니다.

 

$ pip install scann

 

그러나 Windows에서는 ScaNN 라이브러리가 별도로 설치되어 있지 않아 직접 패키지를 다운로드 하여 설치해야 합니다. 지금부터는 Windows 환경에 맞추어 ScaNN을 설치하는 방법에 대해 다루어보도록 하겠습니다.

 

----------------

 

 1. 아래의 Google Research의 github 웹페이지에서 소스코드를 다운로드 받습니다.

 

https://github.com/google-research/google-research/archive/refs/heads/master.zip

 

 ※TensorFlow 2.10 버전까지 Windows 로컬 환경의 GPU를 사용할 수 있습니다. 2.11 버전 이후부터 Windows에서 GPU를 사용하기 위해서는 Docker에 설치하여 사용할 수 있으나 Windows 10의 경우 Insider Preview 모드에서만 Docker에서 GPU를 사용할 수 있습니다.

 이 포스팅에서는 TensorFlow 2.10 버전을 기준으로 설명드릴 예정이며 만약 Windows 로컬 환경에서 GPU 사용을 원하시는 분은 TensorFlow 2.10 버전에서 사용할 수 있는 ScaNN 1.2.8 버전을 첨부드리오니 해당 소스코드를 활용하시길 권장드립니다.

scann.zip
0.65MB

2. ScaNN 버전에서 호환되는 TensorFlow 버전을 설치합니다.  ScaNN 1.2.8 버전을 기준으로 TensorFlow 2.10 버전을 설치합니다. TensorFlow 2.10 버전의 경우 Python 3.10 이하 3.7 이상의 버전을 지원하므로 Python 또한 적합한 버전으로 설치해줍니다.

 

pip install tensorflow==2.10 python<=3.10

 

3. 자신이 설치하는 TensorFlow와 호환되는 Cuda와 Cudnn 버전을 아래의 사이트에서 확인하여 cudatoolkit과 cudnn을 설치합니다.

https://www.tensorflow.org/install/source_windows#tested_build_configurations

 

Windows의 소스에서 빌드  |  TensorFlow

Check out sessions from the WiML Symposium covering diffusion models with KerasCV, on-device ML, and more. Watch on demand 이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English Windows의 소스에서 빌드 컬렉션을

www.tensorflow.org

 TensorFlow 2.10을 기준으로 cuda 11.2 버전과 cudnn 8.1 버전이 호환됨을 확인할 수 있습니다. 자신이 설치하는 TensorFlow의 호환 버전에 맞추어 cuda와 cudnn 및 msvc를 설치해줍니다.

conda install cudatoolkit=11.2 cudnn=8.1

 

MSVC2019는 아래의 링크를 통해 설치하실 수 있습니다.

https://aka.ms/vs/17/release/vs_BuildTools.exe

 

4. ScaNN 소스코드 설치

 

 지금까지의 진행을 통해 ScaNN 소스코드를 빌드할 수 있는 환경을 갖추었습니다. 다음으로 ScaNN 소스코드를 아래의 명령어를 통해 설치를 완료하실 수 있습니다.

 

> cd scann
> pip install -e .

 

 

300x250

vscode에서 Java 클래스 경로 추가하는 방법

공대생의 팁 2022. 11. 8. 00:22

 

 Eclipse로 설계된 Java를 Pycharm이나 vscode로 실행하다 보면 기존의 Class 경로 설정이 맞지 않아 분명 같은 패키지 안에 있는 파일이 인식되지 않는 문제를 최근 경험하곤 합니다.

 

 vscode에서 path를 설정하는 방법이 있는지 열심히 찾아보니 그냥 프로젝트 내에 있는 파일인 '.classpath'를 수정하면 된다는군요.

 

 일단 .classpath가 목록에 보이지 않는 분께서는 아래 주소를 통해 .classpath를 찾아보도록 합니다.

https://hyunchang88.tistory.com/320

 

[ vscode ] .classpath가 안보일때 보이게 하는 방법

vscode를 사용한지 얼마 안되어서 검색을 해봤는데 .classpath 에서 뭔가를 수정하라고 해서 수정하려고 보니 .classpath가 안보임... 여기 있던데 왜 안보임?????? 맥북이라 익숙하지도 않고 툴도 처음써

hyunchang88.tistory.com

 

 다음으로 '.classpath' 파일에 자신이 추가하고자 하는 경로를 다음과 같이 추가합니다.

 

<classpathentry kind="src" path="추가하고자 하는 경로"/>

 

 

 위와 같이 추가하면 vscode에서 Java를 Run 하였을 때 추가한 경로가 인식되는 것을 확인하실 수 있습니다.

 

300x250

Windows Powershell로 긴 명령어를 짧게 만드는 function 함수 사용

공대생의 팁 2022. 5. 12. 19:49

 Windows 환경에서 Python을 사용할 때 pip로 라이브러리를 설치할 때 cmd 혹은 Powershell을 사용합니다. 일반적인 상황에서는 단지

 

 > pip install 라이브러리명

 

 위와 같이 입력만 해줘도 바로 라이브러리를 설치 할 수 있으나 유독 사내망에서는 SSL 인증서 이슈로 인해 조금은 복잡한 설정을 해주어야 합니다.

 

 

python에서 pip install 과정에서 SSL 오류 해결방법

 python의 라이브러리를 사용함에 있어 pip를 통해 관련 라이브러리 패키지를 다운로드 받아 설치할 수 있습니다. 비록 pip가 root 권한 관련 문제가 있지만 그나마 사용할만한 것입니다. 물론 이러

elecs.tistory.com

 

 > pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install 패키지명

 

 Linux 환경에서는 bashrc에서 설정만 해주면 위와 같은 명령어를 굳이 입력하지 않아도 바로 설치가 진행되지만 Windows 환경에서는 bashrc와 같은 설정을 하기엔 상당히 번거로운 면이 있습니다 

 

 Powershell에서 매번 입력하기엔 긴 명령어의 경우 아래와 같이 function 함수를 사용하면 자신이 정한 임의의 명령어로 아래와 같이 설정할 수 있습니다.

 

1
2
3
function 설정하고자 하는 함수명(){
    입력하고자 하는 긴 명령어
}
cs

 

 만약 여러분들께서 여러개의 Argunent를 명령어로 입력해야 할 경우 foreach 반복문으로 여러번 입력할 수 있습니다.

 

1
2
3
4
5
function 설정하고자 하는 함수명(){
    foreach($arg in $args){
        입력하고자 하는 긴 명령어 $arg
    }
}
cs

 여기서 $args는 자신이 함수를 입력한 다음 여러 개의 인자를 입력할 때 각 인자별로 $arg로 입력이 됩니다.

 아래는 pip의 ssl 이슈를 해결하기 위해 --trusted-host에 3개의 긴 주소명을 적은 다음 설치하고자 하는 다수의 패키지를 설치하기 위한 명령어입니다. 이 때 명령어는 임의로 pipip로 지었습니다.

 

1
2
3
4
5
function pipip(){
    foreach($arg in $args){
        pip --trusted-host pypi.python.org --trusted-host pypi.org --trusted-host files.pythonhosted.org install $arg
    }
}
cs

만약 제가 다음과 같은 명령어를 입력한다면 어떻게 될까요?

 

> pipip opencv-python numpy matplotlib

 

이 경우 pip로 다음과 같은 명령어가 3번 수행되었음을 확인하실 수 있습니다.

 

> pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install opencv-python
> pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install numpy
> pip --trusted-host pypi.python.org --trusted-host files.pythonhosted.org --trusted-host pypi.org install matplotlib

 

 위에서 확인할 수 있듯이 긴 명령어를 function 함수로 간편하게 불러올 수 있음을 확인할 수 있습니다.

300x250

Cannot Run Git 오류 발생시 해결 방법(PyCharm, AndroidStudio, Intellij IDEA)

공대생의 팁 2022. 1. 7. 00:17

 

 Python을 활용한 프로그램을 다루어보기 위해 PyCharm과 Anaconda를 설치하여 github에서 받아온 소스코드를 다루어보려 하였는데 예상치 못하였던 난관을 맞이하게 되었습니다. 아래와 같은 이미지의 Event Log가 지속적으로 발생하여 소스코드를 보려 하는 필자의 심기를 계속 건드리고 있었습니다.

 

Cannot Run Git
Git is not installed
Download and Install

 

 

 분명 Anaconda를 통해 git을 설치하였고 직접 Powershell 창에서 git 명령어를 입력하였음에도 다음과 같은 경고창이 지속적으로 나타나는 것을 보게되어 해당 문제를 어떻게든 해결해보고자 하였습니다.

 

 해당 문제는 PyCharm에서 자신의 컴퓨터에 설치된 git 실행파일의 위치를 스스로 찾지 못해 벌어지는 에러입니다. 이 문제는 자신의 PyCharm의 설정을 통해 git 실행 파일을 직접 지정해줌으로서 해결할 수 있습니다.

 

 먼저 해당 프로젝트를 연 다음 Ctrl+Alt+S 버튼울 눌러 Setting(설정)창을 여신 다음 버전 관리(Version Control) → Git 메뉴에서 아래와 같이 Git 실행 파일 경로룰 빨간색으로 표시한 부분을 클릭함으로서 설정하실 수 있습니다.

 

 

 Anaconda로 git을 설치하셨을 경우 git의 경로는 다음과 같이 위치해 있습니다.

 

C:\Users\사용자명\anaconda\pkgs\git-버전명\Library\bin\git.exe
300x250

VMware Android x86을 안드로이드 스튜디오 디버깅 환경으로 연결하여 사용하는 방법

공대생의 팁 2021. 12. 31. 01:18


 이전에 Virtualbox에 설치되었던 안드로이드 x86으로 디버깅을 해보았던 적이 있었습니다. 이번에는 VMware에서 안드로이드 x86을 안드로이드 스튜디오와 연결해서 디버깅 환경을 설정하는 방법에 대해 알아보겠습니다.

만약 VMware에 Android x86을 설치하였음에도 화면이 나오지 않으실 경우 아래의 방법을 통해 해결해조시기 바랍니다.
https://elecs.tistory.com/389

 

VMware에 안드로이드 설치 도중 부팅이 멈출 때 해결방법

 이전에 안드로이드 x86을 VirtualBox를 통해 설치하던 도중 부팅 화면이 나오지 않았던 경험이 있었습니다. 그 당시엔 그래픽카드 설정을 통해 해결하였던 적이 있었지요. https://elecs.tistory.com/343 Vi

elecs.tistory.com


먼저 VMware의 환경설정에서 Network Adapter를 NAT로 설정해주세요.

 

안드로이드 x86의 터미널을 실행하신 후 ifconfig를 입력하여 ip주소를 확인합니다.

 

안드로이드 SDK에서 지원하는 adb를 사용해 안드로이드 x86과 연결해줍니다. adb 실행파일은 자신이 안드로이드 스튜디오를 설치하는 환경에서 확인하실 수 있으며 기본 설정시 경로는 다음과 같습니다.

C:₩사용자₩OWNER₩AppData₩Local₩Android₩Sdk₩platform-tools

 

다음과 같이 입력하여 안드로이드 스튜디오와 x86 에뮬레이터를 연결합니다.
다음 명령어를 입력하여 연결이 잘 되었는지 확인하실 수 있습니다.

 

$ .\adb.exe connect ip주소
$ .\adb.exe devices

 

 위의 과정에서 안드로이드 기기와 연결된 것을 확인하셨다면 Android Studio에서도 아래와 같이 VMware가 연결되었음을 확인하실 수 있습니다. 아래의 초록색 화살표 버튼을 눌러 에뮬레이터에 앱을 설치해봅니다.

 

 위의 과정을 진행하신다면 아래와 같이 VMware에서 예제 앱이 실행되고 있는 것을 확인하실 수 있습니다.

 

300x250

Windows 11에서 어도비 플래시 플레이어를 사용하는 방법

공대생의 팁 2021. 10. 7. 00:04

 

 지난 1월 12일, 어도비의 플래시 플레이어 서비스가 종료되면서 최신 버전의 플래시 플레이어가 설치되었던 컴퓨터에서 더이상 플래시를 사용할 수 없게 되었습니다. 이를 극복하기 위해 가상머신을 사용하여 구버전의 Windows 7을 통해 다시 플래시 플레이어를 사용하는 방법에 대해 여러분들께 소개를 드린바 있었지요.

https://elecs.tistory.com/379

 

2021년 이후 어도비 플래시 플레이어를 사용하는 방법

 1996년 11월 처음으로 등장한 Flash는 매크로미디어가 만들어 2005년 Adobe에 인수된 후 2020년 12월까지 서비스가 제공되었습니다.  처음 등장했던 당시에는 가벼운 용량으로 컴퓨터의 성능이 지금

elecs.tistory.com

 

 시간이 흘러 어느덧 Windows 11이 나오게 되었고 인터넷 익스플로러가 삭제되어 플래시 플레이어는 어느덧 역사속으로 완전 사라진 듯 해 보입니다.

 다행히도, 현 시점에서 Windows 11에서 플래시 플레이어를 사용하 수 있는 방법이 존재합니다! Edge에서 제공하는 Internet Explorer 호환 모드를 통해 제한적으로나마 플래시를 사용할 수 있습니다. 이번 포스팅에서는 이를 해결할 수 있는 방법에 대해 다루고자 합니다. 

 

 

1. 아래의 주소를 통해 플래시 플레이어를 설치해주세요. 최신 버전의 플래시 플레이어의 경우 설치하더라도 서비스가 종료되었다며 실행이 되지 않습니다.

https://drive.google.com/file/d/15ret5DZLTLaFzNPOmNY7NbEINcFKdsEa/view?usp=sharing 

 

install_flash_player_ax_32.0.0.363.exe

 

drive.google.com

 

2. 다운로드 받으신 플래시 플레이어 설치파일을 오른쪽 클릭한 다음 속성을 클릭합니다.

3. '호환성' 탭을 선택하신 후 '이 프로그램을 실행할 호환 모드' 선택하신 다음 'Windows 7'을 선택후 확인 버튼을 눌러주세요.

4. 이제 플래시 플레이어를 설치합니다.

5. 약관 동의에 체크한 다음 '설치'를 클릭합니다.

6. 설치가 완료되면 '업데이트 확인 안 함(권장하지 않음)'을 선택하신 후 '완료' 버튼을 눌러주세요.

7. Microsoft Edge 브라우저를 실행한 다음 메뉴를 연 다음 '설정'을 클릭합니다.

8. '기본 브라우저' 탭에서 '사이트를 Internet Explorer 모드로 다시 로드할 수 있습니다.'를 허용으로 설정 후 '다시 시작' 버튼을 클릭합니다.

9. 다시 브라우저를 실행한 다음 메뉴를 열고 'Internet Explorer 모드에서 다시 로드' 버튼을 클릭합니다.

해당 버튼을 누르면 아래와 같이 인터넷 익스플로러 호환 모드로 Edge가 동작하게 됩니다.

아무런 설정 없이 플래시가 지원되는 웹사이트 접속시 '이 플러그인은 지원되지 않습니다.'라는 안내만 나옵니다만

Interent Explorer 모드를 실행하면 Edge에서도 플래시가 실행되고 있는 것을 보실 수 있습니다!

 

 보안상의 문제로 인해 플래시 플레이어는 앞으로도 더이상 지원되지 않을 것입니다. 하지만 업무상 급하거나 과거의 추억을 즐기고자 하시는 분이라면 테스트용 컴퓨터에서 플래시를 사용하시기를 강력히 권고드립니다.

 

300x250

Windows 11 설치가 실행되지 않는 컴퓨터에 우회 클린설치하는 방법

공대생의 팁 2021. 10. 6. 22:51

 

 한국 시간으로 2021년 10월 5일 오전 6시, Windows 10이 출시된지 6년만에 새로운 Windows 운영체제가 등장하였습니다. 이전에는 Windows 10 버전에서 업데이트만 이루어질 것이라는 이야기를 들었었는데 마이크로소프트에게 있어서 단일 버전으로 계속 지원하기 보다는 새로운 버전을 공개함으로서 변화를 주고자 하는 의도가 있어보입니다.

 

 Windows 10까지만 해도 저사양의 컴퓨터라 하더라도 끈기있게 로딩을 기다릴 수 있는 마음가짐(?)이 있다면 어떻게든 실행할 수 있었습니다. 그런데 이번에 나온 Windows 11을 설치하는 과정에서 놀라운 광경을 보게 되었습니다.

 

이 PC에서는 Windows 11을 실행할 수 없음
이 PC는 이 Windows 버전을 설치하기 위한 최소 시스템 요구 사항을 충족하지 않습니다...

 

 지금껏 수십개의 운영체제들을 설치하면서 용량이 모자르거나 메모리 용량 부족등으로 설치 시간이 길어졌다 하더라도 어떻게든 해결해서 운영체제를 설치해왔던 저였지만 이렇게 경고문을 보여주면서 Windows 11을 설치할 수 없다는 안내문을 보여주는경우는 처음 겪어보았습니다. 제 컴퓨터가 벌써 구형 취급을 받게 되었다는 것과 새로운 운영체제를 설치하기 위한 최소 환경이 아니면 설치를 거부하는 깐깐함에 왠지 다른 시대를 살다온 원시인이 된 듯한 기분입니다.

 

 이번 Windows 11부터는 TPM(Trusted Platform Module,신뢰 플랫폼 모듈) 2.0, RAM 4GB이상, 하드디스크 용량 64GB이상 등의 최소사양 이상의 하드웨어를 갖춘 컴퓨터에서만 설치할 수 있게 하였습니다. 이는 마치 최신 운영체제를 사용하고 싶다면 그에 걸맞는 최소한의 하드웨어 성능은 맞추라는 Windows의 암묵적인 메시지를 보는 듯 했습니다. 즉 제가 가지고 있는 지금의 컴퓨터로는 Windows 11을 사용할 수 없으니 새 컴퓨터를 사라는 거죠.

 

 그러나 그 어떠한 방패가 우리 앞을 가로막는다 하더라도 숨겨진 길을 통해 그 견고한 방패를 넘어설 수 있는 방법이 있습니다. ISO 클린설치 과정에서 이를 우회하여 최소사양 미달인 환경에서도 Windows 11을 사용할 수 있는 방법에 대해 설명드리도록 하겠습니다.

 

※경고 

 해당 방식으로 Windows 11을 설치할 수 있다 하더라도 최소 사양을 갖추지 못한 환경에서는 Windows 11을 사용하지 못할 뿐더러 하드웨어의 성능에 지장을 줄 수 있습니다. 또한 마이크로소프트에서 해당 방식으로 설치된 PC에 대해 차후 Windows 11의 최신 업데이트를 제공하지 않을 것으로 예상되므로 실제 사용 목적이 아닌 테스트용으로 사용하시기를 권장드립니다.

 

1. 설치화면이 나타났을 때 Shift+F10버튼을 누르면 아래와 같이 설치 환경에서도 cmd 창을 불러올 수 있습니다. 해당 창에서 'regedit' 명령어를 입력 후 엔터를 입력합니다.

2. 레지스트리 편집기 화면에서 컴퓨터→HKEY_LOCAL_MACHINE→SYSTEM→Setup 접근하신 후 마우스 오른쪽 클릭 후 새로만들기(N)→키(K)를 클릭합니다.

3. 새로 만들어진 키의 이름을 'LabConfig'로 수정합니다.

4. 새로 만들어진 키에서 새로만들기(N)→DWORD(32비트) 값(D)를 3개 생성합니다.

5. 생성된 DWORD의 이름과 값을 다음과 같이 설정해주세요.

BypassRAMCheck 값: 1
BypassTPMCheck 값: 1
BypassSecureBootCheck 값: 1

6. 위의 과정을 완료하면 다음과 같이 레지스테값이 편집되었음을 확인하실 수 있습니다. 창을 모두 닫아주세요.

7. 이제 다시 Windows 11의 설치를 진행해줍니다.

아래와 같이 새로운 Windows 11의 로고를 보셨다면 설치가 거의 완료되었음을 알 수 있습니다.

축하합니다! 이제 여러분의 컴퓨터에서도 Windows 11을 사용할 수 있게 되었습니다.

새로운 Windows 환경에서 여러분들의 다양한 활동들을 펼쳐보시길 기원합니다

 

300x250

가상머신에서 Android x86 해상도 조절하기

공대생의 팁 2021. 9. 18. 21:34

 

 VMware 혹은 VirtaulBox에서 운영체제를 설치한 후 확장 도구를 설치하면 마치 일반적은 프로그램 창 처럼 가상머신 상에서 구동되는 운영체제의 해상도를 자유로이 조절할 수 있습니다.

 

 그런데 Android x86으로 설치된 운영체제에서는 확장 도구 설치가 어려울 뿐 아니라 내부적으로도 해상도를 조정하는 기능이 없는 것으로 보입니다. 심지어는 화면이 잘려 보이기까지 하고 말이죠.

 

 

 이번 포스팅에서는 고정되어 있는 안드로이도 x86의 해상도를 설정하는 방법에 대해 설명 드리고자 합니다. 해상도 변경을 위해서 grub 부팅 과정에 미리 해상도를 설정해주는 방법을 사용합니다.

 

 먼저 가상머신으로 안드로이도 x86을 실행시켜준 후 grub에서 Debug mode로 접근합니다.

 

 

 Debug mode로 접근하면 수많은 글자들이 화면을 뒤엎는 장면을 보실 수 있습니다. 잠시 기다린 다음 엔터를 연타하여 명령어를 칠 수 있게 해줍니다.

 

 

위와 같이 명령어를 칠 수 있는 화면이 나오면 다음과 같이 입력하여 grub 메뉴를 수정해줍니다.

# mount -o remount,rw /mnt
# vi /mnt/grub/menu.lst

 vi로 menu.lst 파일을 열면 아래와 같은 내용이 나옵니다. 우리는 여기서 첫 번째 메뉴인 'title Android-x86 ~~' 부분을 수정하고자 합니다. 두번째 줄인 'kernel /~~'의 맨 뒷부분으로 커서를 이동시킨 다음 'i'를 입력하여 입력모드에 진입합니다.

 

 

 위의 화면에서 보았을 때 오른쪽 부분이 잘려 보이는데 커서를 오론쪽으로 쭈욱 가다보면 가려진 오른쪽 부분이 나타나는 것을 확인하실 수 있습니다. 

 

 

 저의 경우 해상도를 'video=1280x720'으로 설정하였습니다. 여기까지 진행하신 다음 안드로이드를 실행해보면 아래와 같이 화면이 잘리지 않고 해상도가 조절된 화면으로 나타나는 것을 확인하실 수 있습니다.

 

300x250

안드로이드 기기에 LTE USB 모뎀을 연결해서 무선 데이터를 사용하는 방법 [PPP widget 3]

공대생의 팁 2021. 8. 22. 12:43

 

 우연한 기회로 작년에 컴퓨터로 LTE 데이터를 사용할 수 있는 방법에 대해 포스팅을 하였던 적이 있었는데 지금까지도 이 글을 보러 와주시는 분들이 많았습니다. 저와 같은 고민을 하시던 분들의 이야기를 들어보면서 다양한 이슈가 있음을 알 수 있었습니다.

 

 안드로이드를 쓰시는 거의 대부분의 분들이 삼성의 갤럭시를 보유하고 계시기에 안드로이드에 유심이 된다는 것을 너무나 당연히 생각하고 있었는데 차량용 내비게이션 혹은 와이파이용 태블릿에서는 SIM카드가 없는 모델의 경우가 존재함을 알게 되었고 해당 기기에서 통신사 망을 통한 무선 통신을 위해 USB 모뎀의 필요성이 있습니다.

 

 그래서 이번 포스팅은 조금은 이색적이고 흔치 않은 경우이지만 안드로이드 기기에서 LTE USB 모뎀을 연결하여 사용하는 방법에 대해 알아보고자 합니다.

 

 ※안드로이드 기기에서 USB 모뎀을 사용하기 위해서는 루팅(Rooting)이 되어있어야 합니다. 루팅에 대해 자세히 알지 못하거나 자신의 기기가 은행 혹은 보안에 민감한 작업을 하는 경우 루팅을 수행하여야 하는 해당 내용을 수행하지 않으실 것을 권장드립니다

 

 

컴퓨터에 USIM을 꽂아 통신사 데이터를 써보자! 3G LTE USB 모뎀 사용 후기

 스마트폰이 등장하기 전까지만 해도 휴대전화로 인터넷을 한다는 것은 매우 느린 환경의 통신사의 망을 통해 인터넷을 할 수 있지만 잠시만 사용해도 엄청난 요금울 부과했기 때문에 데이터

elecs.tistory.com

 

1. 현재 자신이 가지고 있는 안드로이드 기기를 루팅합니다. 필자의 경우 안드로이드 x86을 사용하였으며 안드로이드 x86의 경우 루팅이 기본적으로 되어있습니다.

 

2. 구글플레이에서 'PPP widget 3' 앱을 설치합니다.

 

 

PPP Widget 3 - Google Play 앱

와이파이 전용 안드로이드 기기와 블루투스 / USB 모뎀을 사용하여 - 설명을 읽고!

play.google.com

 

3. PPP Widget 3는 위젯으로만 서비스를 제공하기 때문에 설치후에도 앱 형식으로 화면에 보이지 않습니다. 자신의 폰 환경에서 설정을 통해 위젯을 추가합니다. 안드로이드 x86의 경우 바탕화면을 길게 클릭하고 있으면 아래와 같은 메뉴가 나타납니다.

 

 

 4. 위 메뉴에서 위젯을 선택해줍니다.

 

 

 5. 다양한 위젯들 중 PPP Widget 3를 선택하신 다음 이를 원하는 바탕화면에 설치해줍니다.

 

 

6. 다음과 같이 PPP widget을 설치한 다음 USB를 연결하면 PPP Widget이 슈퍼유저 요청을 하게 됩니다. 만약 루팅을 하지 않은 폰의 경우 이후의 과정을 수행할 수 없게 됩니다.

 

 

7. PPP Widget을 지속적으로 사용하고자 할 경우 '이 선택을 계속 유지'를 선택후 '허가'를 클릭합니다.

 

 

8. 우리가 연결한 USB 모뎀을 앞으로도 PPP Widget 3에 수행할 수 있도록 '이 USB 기기에 기본값으로 사용'을 선택하신 후 확인을 클릭합니다.

 

 

9. USIM이 연결된 것이 확인될 경우 다음과 같이 설정창이 나타나는 것을 보실 수 있습니다.

 

 

10. 자신의 USIM을 제공한 통신사의 정보를 입력합니다. 저의 경우 KT 알뜰폰 사용자로서 APN는 KT LTE 사용을 할 수 있도록 lte.ktfwing.com을 입력하였습니다.

 

 

11. 이제 PPP Widget이 다음과 같이 바뀌어있음을 볼 수 있으실 겁니다. 'CONNECT'버튼을 눌러 연결을 시도해봅니다.

 

 

 PPP Widget이 데이터 통신 연결을 시도하고

 

 

 다음과 같이 초록불이 들어오면 인터넷에 연결된 것입니다.

 

 

 인터넷창을 통해 LTE망을 통해 인터넷이 접속되고 있는 것을 확인하실 수 있습니다!

 

 

300x250