[{"data":1,"prerenderedAt":385},["ShallowReactive",2],{"project-20339766":3},{"id":4,"name":5,"line":5,"line_source":6,"title":7,"url":8,"domain":9,"maker":10,"posted_at":11,"year":12,"points":13,"comments":14,"rank_in_year":15,"shown_in_year":16,"top":17,"tier":18,"category":19,"subcategory":20,"format":21,"keywords":22,"reception":27,"sentiment":28,"stance_mix":29,"scored_comments":34,"aspects":35,"strip":45,"post_text":47,"what":48,"said":78,"maker_in_thread":190,"shape":192,"grid":196,"attempts":348,"same_week":349,"maker_shows":43,"maker_hidden":377,"reader_version":378,"card":379},"20339766","A tiny JS library for real-time localization of eye pupils","title","Show HN: A tiny JS library for real-time localization of eye pupils","https:\u002F\u002Ftehnokv.com\u002Fposts\u002Fpuploc-with-trees\u002Fdemo\u002F","tehnokv.com","tehnokv",1562104872,2019,153,61,273,2195,13,"notable","dev_tools","computer vision library","library",[23,24,25,26],"pupil detection","eye tracking","webcam javascript","decision trees","curious",-0.215,{"positive":30,"neutral":31,"mixed":32,"critical":33},4,20,3,11,38,{"docs":36,"privacy":38,"idea":40,"performance":42,"design":44},{"positive":37,"critical":37},0,{"positive":37,"critical":39},2,{"positive":32,"critical":41},6,{"positive":43,"critical":32},1,{"positive":37,"critical":37},[32,37,37,37,37,37,32,43,46,32,37,43,43,43,32,32,32,46,32,43,43,32,43,32,46,32,43,32,37,32,46,43,32,43,43,32,37,37,37,32],5,null,{"problem":49,"audience":47,"pricing":47,"motivation":47,"time_to_build":47,"stack":61,"openness":77,"stage":77,"team_size":77},{"value":50,"source":51,"evidence":52},"Real-time localization of eye pupils in browser webcam video","commenter",[53,57],{"id":54,"by":55,"text":56},"20340436","mbrookes","The author means real-time location of pupils. This is not gaze tracking though.",{"id":58,"by":59,"text":60},"20340137","lioeters","For an explanation, see author's post: Using decision trees for real-time localization of eye pupils https:\u002F\u002Ftehnokv.com\u002Fposts\u002Fpuploc-with-trees\u002F It's actually quite fascinating.…",[62,67,73],{"value":63,"source":51,"evidence":64},"JavaScript",[65],{"id":66},"post",{"value":26,"source":51,"evidence":68},[69],{"id":70,"by":71,"text":72},"20342587","ovi256",">This seems to completely stump the algorithm, even when your eyes are plainly visible That's a false positive. This uses quite simple algos, decisition trees, which have more…",{"value":74,"source":51,"evidence":75},"picojs face detection",[76],{"id":58,"by":59,"text":60},"unknown",{"praise":79,"objections":113,"requests":152,"questions":162,"alternatives":178},[80,91,102],{"value":81,"source":51,"evidence":82},"Impressive for a tiny browser-based demo",[83,87],{"id":84,"by":85,"text":86},"20340929","rodw","I'm always curious about what it takes to confuse things like this (if for no other reason so that I will know how to make face recognition camouflage to hide from the autonomous…",{"id":88,"by":89,"text":90},"20340167","cstrat","If it works, you will see a live feed of your webcam with your face encircled with your pupils highlighted as red dots... its pretty impressive! I'm guessing your browser is…",{"value":92,"source":51,"evidence":93},"Works well for some users, even on low-end phones",[94,98],{"id":95,"by":96,"text":97},"20341494","osrec","Worked pretty well for me on my low-end 2 year old Samsung!",{"id":99,"by":100,"text":101},"20340343","Estyn","Works on firefox for me 67.0.4 (64-bit)",{"value":103,"source":51,"evidence":104},"Interesting for eye-tracking research and UI ideas",[105,109],{"id":106,"by":107,"text":108},"20343765","your-nanny","so, we use eye tracking in experiments to look at how people acquire information. For example, you can parameterize a drift diffusion model using input from gaze. But the…",{"id":110,"by":111,"text":112},"20340945","mncharity","Nifty. I use PoseNet[1] on tensorflow.js to locate eyes for 3D UIs on a laptop. lploc seems much faster, but requires a more restricted head pose. Maybe I'll try using both. I've…",[114,125,137],{"value":115,"source":51,"evidence":116},"Privacy concerns about granting webcam access to random sites",[117,121],{"id":118,"by":119,"text":120},"20340060","Lowkeyloki","Sorry if I don't trust some random web page to use my camera because they promise they're not logging it to their server.",{"id":122,"by":123,"text":124},"20340906","errantspark","I'm all for being paranoid but what exactly is the threat model here? Someone is going to have a few seconds of video of you?",{"value":126,"source":51,"evidence":127},"Jitter and poor robustness to head pose, glasses and oblique angles",[128,132,136],{"id":129,"by":130,"text":131},"20346059","cookingrobot","It works pretty well, but it has the same issue I see with a lot of these object tracking algos - it jitters all over even when I’m holding as still as I can. Why are these…",{"id":133,"by":134,"text":135},"20340632","emilfihlman","Not very good if you change head orientation or rotation but otherwise pretty cool!",{"id":84,"by":85,"text":86},{"value":138,"source":51,"evidence":139},"Fears it will be used for ad attention tracking or employee monitoring",[140,144,148],{"id":141,"by":142,"text":143},"20341268","umvi","Can't wait to integrate this with ad serving tech to make sure users are actually watching the ads. Imagine adding little \"eye catchers\" to ads, and if the pupils don't respond,…",{"id":145,"by":146,"text":147},"20340083","mevile","This is the kind of tech that managers might like to install on their employees computers. If you're smart enough to build interesting things, maybe spend that talent on…",{"id":149,"by":150,"text":151},"20340190","ASalazarMX","Video streaming is too slow to adapt, but I see a way for advertisers to check if you watched an ad even if you didn't interact. Specially if the site already uses the webcam.",[153,157],{"value":154,"source":51,"evidence":155},"Reduce jitter in tracking output",[156],{"id":129,"by":130,"text":131},{"value":158,"source":51,"evidence":159},"Support for gaze tracking beyond pupil location",[160,161],{"id":110,"by":111,"text":112},{"id":54,"by":55,"text":56},[163,170],{"value":164,"source":51,"evidence":165},"Why it does not start after clicking the button",[166],{"id":167,"by":168,"text":169},"20340028","haberdasher","What am I missing? \"Click the button below and allow the page to access your webcam.\" ...and then?",{"value":171,"source":51,"evidence":172},"Whether it works on Firefox without canvas access",[173,177],{"id":174,"by":175,"text":176},"20340305","Deukhoofd","Works on Chrome, but doesn't appear to work on Firefox. I can see my webcam feed, but the red indicators don't show up. Edit: Nevermind, it requires access to canvas data which…",{"id":99,"by":100,"text":101},[179,186],{"value":180,"source":51,"evidence":181},"WebGazer gaze tracking library",[182],{"id":183,"by":184,"text":185},"20340538","azhenley","Gaze tracking on browsers with webcams does exist though! https:\u002F\u002Fwebgazer.cs.brown.edu\u002F",{"value":187,"source":51,"evidence":188},"PoseNet on tensorflow.js",[189],{"id":110,"by":111,"text":112},{"comments":37,"answered":37,"key":191},[],{"commenters":193,"max_depth":41,"maker_replies":37,"first_comment_mins":194,"lifespan_hours":195},46,37,30,[197,199,201,204,207,210,213,217,220,223,227,229,233,236,240,244,246,247,250,252,255,258,261,263,266,269,270,271,272,273,276,280,282,285,286,288,292,294,295,296,298,300,303,305,307,310,313,314,316,319,321,322,325,328,331,334,337,340,342,344,346],[58,37,32,198,59,37],"project\u002Fneutral\u002Fdocs",[122,37,37,200,123,37],"commenter\u002Fneutral\u002Fprivacy",[202,37,37,200,203,37],"20341098","taneq",[205,37,37,200,206,37],"20341839","dymk",[208,37,37,200,209,37],"20342221","erklik",[211,37,37,200,212,37],"20342351","drawnwren",[214,37,37,215,216,37],"20342436","commenter\u002Fneutral\u002Fnone","tomcooks",[218,37,37,215,219,37],"20343356","blue_devil",[221,37,37,200,222,37],"20351452","bradknowles",[224,37,32,225,226,37],"20342043","project\u002Fneutral\u002Fprivacy","hakanito",[228,37,37,200,59,37],"20347739",[230,43,43,231,232,37],"20341836","project\u002Fcritical\u002Fidea","mlang23",[234,43,46,235,209,37],"20342233","project\u002Fpositive\u002Fidea",[237,43,32,238,239,37],"20343013","project\u002Fneutral\u002Fidea","mdrzn",[241,43,37,242,243,37],"20344030","other\u002Fneutral\u002Fnone","e12e",[245,43,37,215,209,37],"20350863",[141,39,43,231,142,37],[248,39,37,242,249,37],"20341371","dual_basis",[251,39,43,231,203,37],"20341517",[253,39,32,238,254,37],"20342861","stordoff",[256,39,43,257,107,37],"20343777","project\u002Fcritical\u002Fprivacy",[259,39,32,238,260,37],"20343918","dpcx",[84,32,32,262,85,37],"project\u002Fmixed\u002Fperformance",[264,32,32,262,265,37],"20341056","franciscop",[267,32,32,268,85,37],"20341166","project\u002Fneutral\u002Fperformance",[70,32,32,268,71,37],[110,30,46,235,111,37],[54,46,32,238,55,37],[183,46,32,238,184,37],[274,46,43,275,111,37],"20340984","project\u002Fcritical\u002Fperformance",[277,41,32,278,279,37],"20340327","maker\u002Fneutral\u002Fdesign","tylerchilds",[129,281,43,275,130,37],7,[167,283,32,284,168,37],8,"project\u002Fneutral\u002Fnone",[88,283,37,215,89,37],[133,287,43,275,134,37],9,[289,290,32,262,291,37],"20341179",10,"dlhavema",[95,290,46,293,96,37],"project\u002Fpositive\u002Fperformance",[174,33,32,268,175,37],[99,33,32,268,100,37],[118,297,43,257,119,37],12,[299,297,32,225,89,37],"20340179",[301,297,32,225,302,37],"20340180","skeletonjelly",[304,297,37,215,150,37],"20340203",[306,297,37,215,302,37],"20340335",[308,297,32,225,309,37],"20340270","nudiustertian",[311,297,37,200,312,37],"20340856","itslennysfault",[106,17,46,235,107,37],[145,315,43,231,146,37],14,[317,315,32,238,318,37],"20340134","edwintorok",[320,315,32,268,89,37],"20340188",[149,315,43,231,150,37],[323,315,43,231,324,37],"20340635","userbinator",[326,315,37,242,327,37],"20340690","lbotos",[329,315,32,268,330,37],"20340980","mythrwy",[332,315,37,215,333,37],"20340245","saas_sam",[335,315,37,215,336,37],"20340322","PavlovsCat",[338,315,37,215,339,37],"20340917","marcosdumay",[341,315,37,215,336,37],"20341187",[343,315,37,215,339,37],"20343279",[345,315,32,225,107,37],"20343739",[347,315,37,215,206,37],"20341870",[],[350,354,359,364,367,372],{"id":351,"name":352,"points":353,"category":19},"20317840","URL Pages",377,{"id":355,"name":356,"points":357,"category":358},"20334779","Vector",322,"infrastructure",{"id":360,"name":361,"points":362,"category":363},"20292104","Nearby-Shops-End-User-Android-app",227,"web_saas",{"id":365,"name":366,"points":362,"category":363},"20292638","comntr",{"id":368,"name":369,"points":370,"category":371},"20326931","Hydra",190,"security_privacy",{"id":373,"name":374,"points":375,"category":376},"20314255","DICOM",142,"languages",false,"v2",{"id":380,"name":5,"line":5,"ai":377,"cat":19,"year":12,"points":13,"comments":14,"rec":27,"s":381,"top":17,"kw":382,"maker":10,"domain":9,"tier":18,"attempts":37,"strip":383,"url":8,"mix":384,"praise":81,"objection":115,"sub":20},20339766,-0.21,[23,24,25,26],"3000003153011133353113135313035131130003",[30,31,32,33],1794036578857]