728x90

AI | ML 43

[TensorRT] EA vs GA vs RC 차이

EA는 Early Access의 약자로 미완성이지만 새로 추가된 기능을 제공받을 수 있다는 장점이 있고, GA는 General Availability의 약자로 최신버전은 아니지만, 기능이 안정적으로 지원된다는 점, RC는 Release Candidate의 약자로 직역하면 릴리즈 후보로, 아직 릴리즈 직전의 상태를 말한다. 정리 : GA 버전 쓰는 게 좋다 참고 https://stackoverflow.com/questions/57312160/what-is-the-difference-between-tensorrt-ga-and-rc https://forums.developer.nvidia.com/t/ea-vs-ga/184403

[C++] onnx 결과값 Mat 타입으로 변경

segmentation 모델 결과를 onnx로 받아보려고 시도하다가 잘 안되었는데, 방법을 찾아 공유하고자 글을 쓴다. 나의 경우는 segmentation 모델 결과가 128 x 128 x 1 의 float 형태의 결과였다. 따라서 128 x 128 크기의 Mat에 _result 포인터를 넣었더니 해결되었고, 0~1사이 값이므로 255를 곱해 8bit로 변경하였더니 결과가 잘 나왔다. auto output_tensors = session_.Run(Ort::RunOptions{ nullptr }, input_names.data(), inputTensors.data(), 1, output_names.data(), 1); float* _result = output_tensors.front().GetTensor..

Sleep-EDF 데이터셋 정리 및 추출

Sleep-EDF 데이터셋은 수면다원검사(Polysomnography, PSG)라고 하여 흔히 병원에서 수면검사를 받을 때 아래와 같은 수많은 센서를 붙여 수면 시간동안 신체정보를 받는데, 이를 기록해둔 오픈데이터셋이다. 데이터셋은 https://physionet.org/content/sleep-edfx/1.0.0/ 홈페이지에서 받을 수 있고, 8.1GB 정도의 용량이다. 받고 나면 sleep-cassette, sleep-telemetry 라는 폴더를 볼 수 있는데, 홈페이지 설명을 빌리자면 cassette는 카세트, 시간순으로 쭉 기록한 데이터고, Telemetry는 테마제팜(temazepam)이라는 불면증 치료제 효과를 확인하기 위해 만든 데이터셋이라고 한다. 개인적으로는 카세트 데이터를 쓸 것으로 ..

[ML-Agent] Unity 게임을 gym.Env 환경으로 변경

유니티로 만든 게임을 파이썬으로 직접 강화학습을 돌려보고 싶어 이것저것 알아보다 못찾아서 직접 코드를 짜야하나 고민하던 중, 다행히도 ML-Agent에서 gym.Env 환경으로 변형해줄 수 있는 내용을 발견하였다. 사용법은 생각보다 간단하다. gym_unity 설치 pip install gym_unity gym_unity로 유니티 게임을 gym.Env 환경으로 감싸기 from mlagents_envs.environment import UnityEnvironment from gym_unity.envs import UnityToGymWrapper unity_env = UnityEnvironment("path") env = UnityToGymWrapper(unity_env) 이후에는 개인적으로 stable-b..

pyMARL 구조 분석 + COMA 코드 분석

최근 멀티에이전트 강화학습(MARL) 분야를 공부하면서 COMA 논문을 읽어보았다. MARL을 이용해보고 싶어 라이브러리와 모델을 검색해봤더니 pyMARL이라는 라이브러리가 나왔다. MARL 분야에서는 다양한 환경이 있지만 스타크래프트2를 이용해 멀티에이전트를 학습시키기도 한다. 멀티에이전트 분야에서는 코드를 어떻게 구성해 에이전트들을 컨트롤하는지 분석해보고 싶어 알아보았다. 내가 알아본 깃허브는 https://github.com/oxwhirl/pymarl 으로 SC2를 기반으로 다양한 멀티에이전트 모델을 실험해볼 수 있는 환경을 제공해주었다. PyMARL 구조 분석 그럼 구조가 어떻게 되어있는지 분석해보자 깃허브에서는 src/main.py에 다양한 config를 주어 실험이 가능하도록 만들었으니, ma..

[Unity] ML-Agents 설치 및 테스트해보기

Unity 환경에서 강화학습을 시도해보고자 ML-Agents 설치 및 테스트를 진행해봤다. 이 때, 기본적으로 Unity와 Python이 설치되었다는 전제로 진행한다. Unity 환경은 20.3.15 LTS 버전으로 진행하였고, Python은 Anaconda 기반 3.8버전으로 진행하였다. 1. 유니티 ml-agents 홈페이지에 들어간다 https://github.com/Unity-Technologies/ml-agents GitHub - Unity-Technologies/ml-agents: Unity Machine Learning Agents Toolkit Unity Machine Learning Agents Toolkit. Contribute to Unity-Technologies/ml-agents ..

[CVPR 2021] Removing Diffraction Image Artifacts in Under-Display Camera viaDynamic Skip Connection Network 리뷰

Abstract UDC(Under display Camera) 환경에서 생기는 noise, flare, haze, blur 등을 해결하려 함 1. Introduction 문제부터 설명하자면 논문에서는 (a)같은 하드웨어의 제약으로 인해 빛이 퍼지는 문제를 소프트웨어적으로 해결하려고 했다. (a)에서 좌측은 일반 OLED 화면, 우측은 OLED 화면 아래에 카메라가 있는 부분으로 패널이 카메라 때문에 촘촘하지 못해 투명한 공간이 생긴다고 한다. 조금 더 자세히 설명하면 (b)는 UDC 시스템의 간단한 그림인데 점광원으로부터 방출된 빛이 센서에 닿기도 전에 OLED와 카메라로부터 이미 변형된다고 한다. (c)는 PSF 패턴을 캡처해 가시화한 것으로 원래 이미지에 적용하면 흐릿해지는 것을 볼 수 있는데, 논문..

[OCR] CRNN 코드 분석 및 CTC loss 간단한 이해

CRNN 간단 소개 CRNN은 CNN과 RNN을 섞은 모델로 이미지를 입력으로 받아 특징을 추출하고, 추출한 특징을 바탕으로 RNN을 통해 시퀀스별 글자를 예측하는 모델을 말한다. 최근 OCR을 공부하고 있는데 이미지로부터 어떻게 해석을 하는지 궁금해 코드부터 뜯어보았다. 첫번째로 참고한 모델은 완전 기초적인 CRNN 모델로 코드와 참조한 링크는 다음과 같다. https://github.com/qjadud1994/CRNN-Keras/blob/master/Model.py GitHub - qjadud1994/CRNN-Keras: CRNN (CNN+RNN) for OCR using Keras / License Plate Recognition CRNN (CNN+RNN) for OCR using Keras / L..

AI | ML/OCR 2021.08.05

[RL] Stable-baselines3 모델 커스터마이징

stable-baselines3에서는 PPO, A2C, DDPG 등의 강화학습 모델들이 기본적으로 주어진다. 강화학습모델 안에서 내부 모델을 cnn으로 짤지 MLPpolicy를 쓸지 다양한 선택지가 주어지는데 보통은 mlp를 많이 쓰기도 하지만 cnn으로 진행하는 경우도 있다. 기본 제공 Network Stable-baselines3에서는 기본적으로 CnnPolicy, MlpPolicy, MultiInputPolicy를 제공하는데 Multi Input은 안써봐서 생략하겠다. CNN CNN에서는 convolution 시, kernel_size, stride, padding 등의 파라미터 설정값과 네트워크의 레이어에 따라 추출된 특징이 언제든 변할 수 있다. 아래는 stable-baselines3에서 기본적..

[RL] stable-baselines3 학습 커스터마이징해보기

stable-baselines3 라이브러리를 이용해 학습해보다가 학습 시간을 크게 설정했을 때 저장 주기를 내맘대로 설정하지 못해서 알아보다가 글을 쓴다. stable-baselines3에서는 학습 중 확인이나, 커스텀을 진행할 때 Callback 메소드를 가져오면 중간과정을 확인할 수 있다. 학습 중 테스트 진행 학습 중에 테스트를 진행하려면 EvalCallback 메소드를 사용하면 되는데, 함수의 전반적인 설명은 이미지를 참고하면 된다. 이 중에 내가 주로 썼던 것은 아래와 같다. n_eval_episode : 테스트를 진행할 episode 개수 eval_freq : 테스트를 진행하는 간격 log_path : 테스트 결과를 저장할 경로 render : 가시화할지 여부 verbose : 0이면 프린트 ..

728x90