quick fix/hack for unmatched faces

This commit is contained in:
2022-07-19 21:23:32 +10:00
parent fd79ee2cf4
commit 8646b3b8c2
3 changed files with 27 additions and 31 deletions

3
TODO
View File

@@ -17,9 +17,6 @@
* should allow context menu from View thumbs (particularly useful on search) to show other files around this one by date (maybe that folder or something?) * should allow context menu from View thumbs (particularly useful on search) to show other files around this one by date (maybe that folder or something?)
* re-think unmatched faces...
(the view needs a orig_url and pa_user_state to support viewer for current)
* could get better AI optim, by keeping track of just new files since scan (even if we did this from the DB), * could get better AI optim, by keeping track of just new files since scan (even if we did this from the DB),
then we could just feed those eid's explicitly into a 'run_ai_on_new_files' :) -- maybe particularly then we could just feed those eid's explicitly into a 'run_ai_on_new_files' :) -- maybe particularly
if count('new files') < say 1000 do eids, otherwise do path AND no new refimgs if count('new files') < say 1000 do eids, otherwise do path AND no new refimgs

11
ai.py
View File

@@ -87,14 +87,15 @@ def unmatched_faces():
faces=Face.query.join(FaceFileLink).join(FaceRefimgLink, isouter=True).filter(FaceRefimgLink.refimg_id==None).order_by(Face.h.desc()).limit(10).all() faces=Face.query.join(FaceFileLink).join(FaceRefimgLink, isouter=True).filter(FaceRefimgLink.refimg_id==None).order_by(Face.h.desc()).limit(10).all()
imgs={} imgs={}
for face in faces: for face in faces:
tmp_locn=json.loads(face.locn) face.tmp_locn=json.loads(face.locn)
f = Entry.query.join(File).join(FaceFileLink).filter(FaceFileLink.face_id==face.id).first() f = Entry.query.join(File).join(FaceFileLink).filter(FaceFileLink.face_id==face.id).first()
face.file_eid=f.id face.file_eid=f.id
face.url=f.FullPathOnFS() face.url=f.FullPathOnFS()
x=tmp_locn[3]*0.95 face.filename=f.name
y=tmp_locn[0]*0.95 x=face.tmp_locn[3]*0.95
x2=tmp_locn[1]*1.05 y=face.tmp_locn[0]*0.95
y2=tmp_locn[2]*1.05 x2=face.tmp_locn[1]*1.05
y2=face.tmp_locn[2]*1.05
im = Image.open(f.FullPathOnFS()) im = Image.open(f.FullPathOnFS())
region = im.crop((x, y, x2, y2)) region = im.crop((x, y, x2, y2))

View File

@@ -7,9 +7,7 @@
<div class="row mt-3"> <div class="row mt-3">
{% for f in faces %} {% for f in faces %}
<div id="F{{f.id}}" class="col col-auto mt-3 pr-1"> <div id="F{{f.id}}" class="col col-auto mt-3 pr-1">
<form id="_fm" method="POST" action="/view/{{f.file_eid}}"> <form id="_fm" method="POST" action="/search/{{f.filename}}">
<input type="hidden" name="eids" value="{{f.file_eid}},">
<input type="hidden" name="orig_url" value="/files_ip">
<figure id="fig_{{f.id}}" class="mb-0"> <figure id="fig_{{f.id}}" class="mb-0">
<div style="position:relative"> <div style="position:relative">
<canvas id="c_{{f.id}}" height="128"></canvas> <canvas id="c_{{f.id}}" height="128"></canvas>
@@ -19,12 +17,12 @@
fig_{{f.id}}=$('#fig_{{f.id}}') fig_{{f.id}}=$('#fig_{{f.id}}')
// store this stuff in an javascript Object to use when document is ready event is triggered // store this stuff in an javascript Object to use when document is ready event is triggered
var orig_face_{{f.id}}=new Object; var orig_face_{{f.id}}=new Object;
orig_face_{{f.id}}.x = (({{f.locn[1]}}*1.05 - {{f.locn[3]}}*.95) - {{f.w}}) / 2 orig_face_{{f.id}}.x = (({{f.tmp_locn[1]}}*1.05 - {{f.tmp_locn[3]}}*.95) - {{f.w}}) / 2
orig_face_{{f.id}}.y = (({{f.locn[2]}}*1.05 - {{f.locn[0]}}*.95) - {{f.h}}) / 2 orig_face_{{f.id}}.y = (({{f.tmp_locn[2]}}*1.05 - {{f.tmp_locn[0]}}*.95) - {{f.h}}) / 2
orig_face_{{f.id}}.w = {{f.w}} orig_face_{{f.id}}.w = {{f.w}}
orig_face_{{f.id}}.h = {{f.h}} orig_face_{{f.id}}.h = {{f.h}}
orig_face_{{f.id}}.orig_w = {{f.locn[1]}}*1.05 - {{f.locn[3]}}*.95 orig_face_{{f.id}}.orig_w = {{f.tmp_locn[1]}}*1.05 - {{f.tmp_locn[3]}}*.95
orig_face_{{f.id}}.orig_h = {{f.locn[2]}}*1.05 - {{f.locn[0]}}*.95 orig_face_{{f.id}}.orig_h = {{f.tmp_locn[2]}}*1.05 - {{f.tmp_locn[0]}}*.95
//console.log( orig_face_{{f.id}} ) //console.log( orig_face_{{f.id}} )