728x90

분류 전체보기 138

[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이면 프린트 ..

[RL] Windows 환경에서 Ray 설치 및 실행하기

일단 전제로 알아두어야 할 것이 Windows 환경에서는 지원이 완벽하지 않다고 한다. 1. 기본적인 설치 명령어를 입력한다. pip install -U ray 2. 아래 링크로 들어가 C++ runtime 파일을 설치하고 재실행한다. 2번을 제대로 실행하지 않을 경우, ray.init() 이라는 명령어를 실행했을 때 30초 이내에 응답이 없다는 에러가 발생한다. (The current node has not been updated within 30 seconds. error) https://docs.ray.io/en/master/installation.html#windows-support Installing Ray — Ray v2.0.0.dev0 .rst .pdf to have style consist..

[CVPR 2021] Reinforced Attention For Few Shot Learning And Beyond Shot_Learning_and_Beyond 리뷰

논문 : https://openaccess.thecvf.com/content/CVPR2021/papers/Hong_Reinforced_Attention_for_Few-Shot_Learning_and_Beyond_CVPR_2021_paper.pdf Abstract Policy Gradient 알고리즘을 이용한 RL 기반의 attention agent로 Backbone 네트워크 제안 학습된 적 없는 데이터에도 학습이 가능한 범용적인 reward function 설계 Introduction 딥러닝 알고리즘이 데이터에 의존적임에 따라 라벨링의 중요성이 언급되지만, 데이터가 클수록 준비해야하는 양도 많다보니 제약이 많다 → few-shot learning 연구의 시작점 언급 few-shot learning 접근법..

[OpenCV] 라이브러리 별 Resize 성능 차이

검색을 해보다가, 알게 된 내용으로 각 라이브러리 별로 Resize를 하는데도 차이가 존재한다는 것을 알게 되었다. 1. PIL vs OpenCV 간 BICUBIC 차이 Case 2를 보면 같은 이미지를 PIL, OpenCV 방식으로 불러왔는데 완벽히 같지 않다는 내용을 볼 수 있다. 그리고, 이에 대해 비슷하게 누군가가 실험한 예시이다. 2번째 행에서 왼쪽이 OpenCV, 오른쪽이 PIL을 이용한 예시인데, 3x3 픽셀의 좌측 하단과 우측하단을 보면 OpenCV의 경우 전반적으로 더 밝고, PIL의 경우 더 어둡다. 아래는 PIL과 Matlab으로 resize를 진행헀을 때의 차이값으로 생각보다 많은 픽셀값들이 다름을 확인할 수 있다. 게다가 매우 중요한 건 Super Resolution같은 세밀함을 ..

Framework/OpenCV 2021.07.22

[Pytorch Lightning] Pytorch-Lightning 사용해보기

최근에 PyTorch-lightning이라는 라이브러리를 알게 되었다. Pytorch-lightning(PL)은 이름만 들어도, pytorch를 경량화시킨거 같다는 생각이 들었는데, PL이 pytorch와 다른점이 무엇인지 알아보았다. 대략적인 설명은 홈페이지에서 볼 수 있다. https://www.pytorchlightning.ai/ PyTorch Lightning The ultimate PyTorch research framework. Scale your models, without the boilerplate. www.pytorchlightning.ai 나의 느낀점은 Pytorch는 Python스러운 Numpy를 DL에 접목시킨 확장시킨 라이브러리였다면, Pytorch Lightning은 "학습"의..

[RL] stable-baselines3 모델 학습, 불러오기

아래의 코드는 기존의 gym library를 이용한 경우지만, custom Env의 경우는 이전 글을 참조하면 된다. https://tw0226.tistory.com/80 import gym from stable_baselines3 import DQN from stable_baselines3.common.evaluation import evaluate_policy # Create environment env = gym.make('LunarLander-v2') # Instantiate the agent model = DQN('MlpPolicy', env, verbose=1) # Train the agent model.learn(total_timesteps=int(2e5)) # Save the agent m..

728x90