| import numpy as np |
| import torch |
| import gradio as gr |
| from infer import detections |
|
|
| import os |
| os.system("mkdir data") |
| os.system("mkdir data/models") |
| if not os.path.exists("data/models/walt_people.pth"): |
| os.system("wget https://www.cs.cmu.edu/~walt/models/walt_people.pth -O data/models/walt_people.pth") |
| if not os.path.exists("data/models/walt_vehicle.pth"): |
| os.system("wget https://www.cs.cmu.edu/~walt/models/walt_vehicle.pth -O data/models/walt_vehicle.pth") |
| ''' |
| ''' |
| def walt_demo(input_img, confidence_threshold): |
| |
| if torch.cuda.is_available() == False: |
| device='cpu' |
| else: |
| device='cuda:0' |
| |
| detect = detections('configs/walt/walt_vehicle.py', device, model_path='data/models/walt_vehicle.pth', threshold=confidence_threshold) |
| |
| count = 0 |
| |
| output_img = detect.run_on_image(input_img) |
| |
| |
| |
|
|
| return output_img |
|
|
| description = """ |
| WALT Demo on WALT dataset. After watching and automatically learning for several days, this approach shows significant performance improvement in detecting and segmenting occluded people and vehicles, over human-supervised amodal approaches</b>. |
| <center> |
| <a href="https://www.cs.cmu.edu/~walt/"> |
| <img style="display:inline" alt="Project page" src="https://img.shields.io/badge/Project%20Page-WALT-green"> |
| </a> |
| <a href="https://www.cs.cmu.edu/~walt/pdf/walt.pdf"><img style="display:inline" src="https://img.shields.io/badge/Paper-Pdf-red"></a> |
| <a href="https://github.com/dineshreddy91/WALT"><img style="display:inline" src="https://img.shields.io/github/stars/dineshreddy91/WALT?style=social"></a> |
| </center> |
| """ |
| title = "WALT:Watch And Learn 2D Amodal Representation using Time-lapse Imagery" |
| article=""" |
| <center> |
| <img src='https://visitor-badge.glitch.me/badge?page_id=anhquancao.MonoScene&left_color=darkmagenta&right_color=purple' alt='visitor badge'> |
| </center> |
| """ |
|
|
| examples = [ |
| ['demo/images/img_1.jpg',0.8], |
| ['demo/images/img_2.jpg',0.8], |
| ['demo/images/img_4.png',0.85], |
| ] |
|
|
| ''' |
| import cv2 |
| filename='demo/images/img_1.jpg' |
| img=cv2.imread(filename) |
| img=walt_demo(img) |
| cv2.imwrite(filename.replace('/images/','/results/'),img) |
| cv2.imwrite('check.png',img) |
| ''' |
| confidence_threshold = gr.Slider(minimum=0.3, |
| maximum=1.0, |
| step=0.01, |
| value=1.0, |
| label="Amodal Detection Confidence Threshold") |
| inputs = [gr.Image(), confidence_threshold] |
| demo = gr.Interface(walt_demo, |
| outputs="image", |
| inputs=inputs, |
| article=article, |
| title=title, |
| enable_queue=True, |
| examples=examples, |
| description=description) |
|
|
| |
| demo.launch(share=True) |
|
|
|
|
|
|