Files
cotracker/cotracker/utils/__pycache__/visualizer.cpython-38.pyc

78 lines
7.5 KiB
Plaintext
Raw Normal View History

2024-08-05 23:36:58 +02:00
U
jyf<79>1<00>@s<>ddlZddlZddlZddlZddlmZddlmm Z
ddl m Z ddl mZddlmZmZdd<05>Zddd <09>Zd
d <0B>Zd d <0A>ZGdd<0F>d<0F>ZdS)<11>N)<01>cm)<02>Image<67> ImageDrawc
Csrzt<00>|<00>}Wn2tk
r@}ztd|<02>WY<00>dSd}~XYnXg}t|<01>D]\}}|<03>t<06>|<05><01>qNt<06>|<03>S)NzError opening video file: ) <09>imageioZ
get_reader<EFBFBD> Exception<6F>print<6E> enumerate<74>append<6E>np<6E>array<61>stack)<06>path<74>reader<65>e<>frames<65>i<>im<69>r<00>*D:\cotracker\cotracker\utils\visualizer.py<70>read_video_from_paths
r<00><03><>rrTcCsbt<00>|<00>}|d||d|f}|d||d|f}|j||g|rPt|<03>ndt|<03>d<03>|S)Nr<00>)<02>fill<6C>outline)r<00>DrawZellipse<73>tuple)<08>rgb<67>coord<72>radius<75>color<6F>visible<6C>drawZ left_up_pointZright_down_pointrrr<00> draw_circles
<06>r#cCs:t<00>|<00>}|j|d|d|d|dft|<03>|d<03>|S)Nrr)r<00>width)rr<00>liner)r<00>coord_y<5F>coord_xr <00> linewidthr"rrr<00> draw_line-s
<02>r)cCs|||||<00>d<01>S)N<>uint8)<01>astype)r<00>alpha<68>original<61>beta<74>gammarrr<00> add_weighted7sr0c @s<>eZdZdeeeeeeeed<07>dd <09>Zdejejejejejeeeeed <0A>
dd<0F>Z ddd<11>Z
dejejejejed<12>dd<14>Z d e j e j e j ed<16>dd<18>Ze j e j d<19>dd<1B>Zd
S)!<21>
Visualizer<EFBFBD> ./resultsFr<00>
<00>rainbow<6F>)<08>save_dir<69> grayscale<6C> pad_value<75>fps<70>moder(<00>show_first_frame<6D>tracks_leave_tracec Cs^||_||_|dkr"t<02>d<02>|_n|dkr6t<02>|<05>|_||_||_||_||_||_ ||_
dS)Nr4Z gist_rainbowZcool) r:r6rZget_cmap<61> color_mapr;r7r<r8r(r9) <09>selfr6r7r8r9r:r(r;r<rrr<00>__init__<s  zVisualizer.__init__N<5F>videoT)
r@<00>tracks<6B>
visibility<EFBFBD> gt_tracks<6B> segm_mask<73>filename<6D>step<65> query_frame<6D>
save_video<EFBFBD>compensate_for_camera_motionc  Cs<>| r|dk st<00>|dk r\|d| f<00><01><00><02>} |d| f| dd<00>df| dd<00>dff<00><02>}t<03>||j|j|j|jfdd<04>}||j}|jr<>t<07><08>} | |<01>}|<01> ddddd<02>}|j
|||||| | d<06>}|
r<EFBFBD>|j ||||d<07>|S)Nrr<00>constantr<00>)r@rArBrDrCrGrI)rE<00>writerrF) <0C>AssertionError<6F>round<6E>long<6E>F<>padr8r7<00>
transformsZ Grayscale<6C>repeat<61>draw_tracks_on_videorH)r>r@rArBrCrDrErLrFrGrHrI<00>coords<64> transform<72> res_videorrr<00> visualizeTs8 0<02>
<02> zVisualizer.visualizec Cs<>|dk r&|j||<01>tj<03>||jd<01>n<>tj|jdd<03>t|<01> d<04><01>}dd<06>|D<00>}tj
<EFBFBD> |j|<02>d<07><02>}t j ||jd<08>}|d d
<EFBFBD>D]}|<07>|<08>q<>|<07><0F>td |<06><00><02>dS) N)Z global_stepr9T)<01>exist_okrcSs&g|]}|d<00>ddd<00><03><01><00><02><00>qS)rrr5)<03>permute<74>cpu<70>numpy)<02>.0Zwiderrr<00>
<listcomp><3E>sz)Visualizer.save_video.<locals>.<listcomp>z.mp4)r9r5<00><><EFBFBD><EFBFBD><EFBFBD>zVideo saved to )Z add_video<65>to<74>torchr*r9<00>os<6F>makedirsr6<00>list<73>unbindr <00>joinrZ
get_writerZ append_data<74>closer) r>r@rErLrFZ wide_listZ save_pathZ video_writer<65>framerrrrH<00>s 
<04> zVisualizer.save_video)r@rArBrDrGc" Csp|j\}} }
} } |j\} } }}|dks*t<01>|
dks6t<01>|d<00>dddd<04><04><03><00><04><00><05><00><06>}|d<00><07><00><04><00><05><00><06>}|dk r<>|d<00><04><00><05><00><06>}g}|D]}|<10>|<11> <09><00>q<>t
<EFBFBD> | |df<03>}|j dkr<>ddl }|<13>|||d<00>}<12>nH|dk<08>r<>|j dk<02>r<>||dd<00>df<00><0F>||dd<00>df<00><10>}}t<11>||<15>}t|<0E>D]T}|<00>||||df<00><01>}t
<EFBFBD>|dd<02><00>dd}t
j|| dd<08>|dd<00>|f<<00>q>nHt| <09>D]>}t
<EFBFBD>|<00>|| <00>dd<02><00>dd}t
j||dd<08>||<<00>q<><71>nL|j dk<02>r<>d|dd<00>|dkdd<00>f<|d|dkdf<00><0F>|d|dkdf<00><10>}}t<11>||<15>}t|<0E>D]b}||dk<04>rJ|<00>||d|df<00><01>}t
<EFBFBD>|dd<02><00>dd}t
j|| dd<08>|dd<00>|f<<00>qJn~|<04><05>}t
j |jddft
jd <09>}t
<EFBFBD>|<00>d
<EFBFBD>dd<02><00>d ||dk<t
<EFBFBD>|<00>d <0C>dd<02><00>d ||dk<t
j|d| dd<08>}|jdk<03>rHt|d| <09>D]<5D>}|jdk<05>rhtd||j<00>nd}|||d<00>}|||d<00>}|<07>r|||d<00>|dkf|||d<00>|dkf<00>d<04>dd<00>df}||}|dd<00>|dkf}|dd<00>|dkf}|<00>||||<1C>||<|dk <09>rH|<00>|||||d<00><00>||<<00>qHt|| <09>D]<5D>}t<1C>t
<EFBFBD>||<00><01>}t|<0E>D]<5D>}|||df|||dff} d }!|dk <09>r<>|d||f}!| ddk<03>rr| ddk<03>rr|<07>r<>|<07>rr||dk<04>rrt|| t |j!d<00>|||f<00>"t <20>|!d<0E>}<1E>qrt
<EFBFBD>|<1E>||<<00>qR|j#dk<04>rL|dg|j#|dd<00>}t$<24>%t
<EFBFBD>&|<10><01><01>dddd<01>d<00><03>S)Nr5rKrrZ optical_flowr4r)<01>axis)<01>dtypeg<00>?g<00>o@gT)rrr r!)'<27>shaperMrZ<00>byte<74>detachr[r\rOr <00>copyr
<00>zerosr:<00>flow_visZ flow_to_color<6F>min<69>max<61>pltZ Normalize<7A>ranger=r rS<00>float32r<<00>mean<61>_draw_pred_tracks<6B>_draw_gt_tracksr<00> fromarrayr*r#<00>intr(r+r;ra<00>
from_numpyr )"r>r@rArBrDrCrGrI<00>B<>T<>C<>H<>W<>_<>N<>DrWr<00> vector_colorsrpZy_minZy_max<61>norm<72>nr <00>tZ first_indZ curr_tracksZ curr_colors<72>diff<66>imgrrZvisibilerrrrT<00>s<>
  $

 <14>  " $ <14>  "$$ <1E><16><02><02><02><02>
$ 
<02>
<EFBFBD> <02>
 zVisualizer.draw_tracks_on_video<65><00>?)rrAr<>r,c Cs |j\}}}t<01>t<03>|<01><01>}t|d<00>D]<5D>}||} |<01><06>}
||d}t|<06>D]<5D>} t||| df<00>t||| df<00>f} t||d| df<00>t||d| df<00>f} | ddkrP| ddkrPt|| | | | <00> t<07>|j
<EFBFBD>}qP|j dkr(t<01>t<03>t t<03> |<01>|t<03> |
<EFBFBD>d|d<03><05><01>}q(t<03> |<01>}|S)Nrr5r)rkrryr
r*rtrnrzr)r+r(r<r0r )r>rrAr<>r,r}r<>r<><00>sZ vector_colorr-rr&r'rrrrws.   $, <04>
$<24>
zVisualizer._draw_pred_tracks)rrCc Cs"|j\}}}t<01>d<01>}t<03>t<01>|<01><01>}t|<03>D]<5D>}t|<04>D]<5D>}|||}|ddkr:|ddkr:|jd} t|d<00>| t|d<00>| f}
t|d<00>| t|d<00>| f} t ||
| ||j<07>}t|d<00>| t|d<00>| f}
t|d<00>| t|d<00>| f} t ||
| ||j<07>}q:q.t<01>|<01>}|S)N)<03><>rrrrrK)
rkr
r rryr*rtr(rzr)) r>rrCr}r<>r<>r r<>r<00>lengthr&r'rrrrx6s8 
   
  <04>  <04>
zVisualizer._draw_gt_tracks)r2Frr3r4r5r3r) NNNr@NrrTF)Nr)NNNrF)r<>)<11>__name__<5F>
__module__<EFBFBD> __qualname__<5F>str<74>boolrzr?ra<00>TensorrXrHrTr
<00>ndarray<61>floatrwrxrrrrr1;s|<00><02> <00><02> .
<00><02> <00><02> !<04>r1)rT)rbr\r
rra<00>
matplotlibrZtorch.nn.functional<61>nn<6E>
functionalrPZtorchvision.transformsrR<00>matplotlib.pyplot<6F>pyplotrs<00>PILrrrr#r)r0r1rrrr<00><module>s