17:10:18 #startmeeting 17:10:18 Meeting started Fri Mar 22 17:10:18 2013 CET. The chair is darci. Information about MeetBot at http://wiki.debian.org/MeetBot. 17:10:18 Useful Commands: #action #agreed #help #info #idea #link #topic. 17:10:38 amber do you want to go first? 17:10:44 I didn't do much due to other obligations (read: school) but I did get a chance to poke around, and have a few questions (for amber probably) 17:11:04 sure 17:11:25 ok. 17:11:49 i started working on remaking the ocvfw 17:12:05 have a rough start that i uploaded to github 17:12:21 So how much of a "remake" is this? Can you explain a bit? 17:12:37 it would replace the existing ocvfw 17:13:02 right now it contains a camera.py, camera_backend.py and a controller 17:13:05 #info amber has a rough "first start" to a remake of ocvfw to replace the current one 17:14:00 how much are each of these fleshed out? 17:14:10 very rough stages 17:14:28 i havent had too much time to work on it due to finals 17:14:47 Drexel on a quarter system? 17:14:57 yes 17:16:09 john: were you able to start documenting main 17:16:17 So I looked at the source for main.py and several others in /src/, and they seem to already be documented? I've added a few lines to clarify what this or that is for, but I'm not sure if that's what you're looking for? 17:16:41 Basically I'm more "commenting", not "documenting" if you know what I mean 17:17:12 i think heidi has moved it to another page 17:17:38 we still need the methods and major variables documented 17:17:51 What did I move? 17:18:26 the mousetrap classes detail 17:18:41 i think that was your commit? 17:18:46 The one concern that I have is that we need to do a redesign, rather than simply "converting" the existing files. 17:18:50 It already has documentation -- just generate a PyDoc on it…? 17:18:53 Yes, I did move some of the mousetrap detail. 17:18:55 Example, 17:18:57 are you referring to this? 17:19:06 def script(self): 17:19:06 """ 17:19:07 Returns the main script class object. 17:19:09 Arguments: 17:19:10 - self: The main object pointer. 17:19:11 """ 17:19:12 return get_script_class(self.cfg.get("scripts", "name"))() 17:19:37 for example. All methods has it 17:19:40 the comments are scarce and none-descriptive 17:19:46 Yes, right. 17:19:46 non* 17:20:37 the docs that i have up for the ocvfw are a lot more informative 17:20:47 than what pydocs will be able to generate 17:20:47 Yes. 17:20:51 I don't know what a "main script class" object is. Nor do I know you can use a pointer to main (is that even possible?) 17:21:30 i guess they are describing it as a controller class 17:21:54 it "points" to the other modules to start the program 17:23:42 john: have you seen the docs that amber has for the ocvfw? 17:24:24 Yes 17:24:50 and how do they compare to the ones you've been looking at (in main for example)? 17:25:57 Not much different... 17:27:41 a random example; 17:27:46 def get_haar_roi_points(self, haarCascade, rect, origSize=(0, 0), method=co.cv.CV_HAAR_DO_CANNY_PRUNING): 17:27:47 """ 17:27:48 Search for points matching the haarcascade selected. 17:27:49 Arguments: 17:27:51 - self: The main object pointer. 17:27:52 So does it makes sense to move on to the other files and document there (in particular, the methods and major variables as amber pointed out)? 17:27:52 - haarCascade: The selected cascade. 17:27:53 - methode: The search method to use. DEFAULT: co.cv.CV_HAAR_DO_CANNY_PRUNING. 17:27:54 Returns a list with the matches. 17:27:55 """ 17:28:43 Sure, I'll check them out 17:28:45 sorry, my question ended up in the middle of your example 17:29:08 john, we also need to know the order that main is calling the other object 17:29:12 objects* 17:29:25 what do you mean? 17:29:39 things that would help in the redesign 17:30:00 main is responsible for calling the methods to start the camera, bring up the window, etc 17:30:50 i did put up pydocs for mousetrap already, its on github under the /docs folder 17:32:33 #link https://github.com/amberheilman/mousetrap/tree/fix_install/docs/pydoc 17:32:45 it may help with the documentation 17:33:01 Didn't see anything? The folder was last updated 4 years ago 17:33:41 https://github.com/amberheilman/mousetrap/tree/fix_install/docs/html 17:33:45 sorry wrong link 17:34:41 I think that we need to reverse engineer the algorithm. We need to focus on _what_ the current algorithm is doing and not fuss the _how_ for now. 17:35:19 i dont understand? 17:36:12 So if I understand correctly, CV2 is significantly different than CV. 17:36:34 Different enough that we should relook at how the ocvfw works and perhaps do a redesign. 17:36:49 And in order to do that, we need to understand what the current design does. 17:37:14 This would typically involve creating a class diagram of the existing back end. 17:37:30 And then a high-level algorithm for what goes on. 17:37:51 Why can't we just use something like this and be done with it? http://jayrambhia.com/blog/face-tracking-with-camshift-using-opencvsimplecv/ 17:38:13 E.g., 1. Camera focuses on forehead, 2. The center of the forehead is determined (by the app), etc. 17:38:24 * heidi looking 17:38:43 This is still too low level. 17:39:29 We need to do a design step that allows for future development of MouseTrap. 17:40:02 For instance, how would the example that you provided work with tracking a finger (which is hypothetically supposed to be supported). 17:40:09 I don't know the answer to this. 17:40:50 But I think we need to do a high-level design then a detailed-level design. 17:41:05 You folks have done an excellent job with the code. I'm really proud of you. 17:41:25 And I think we've come to realizing that the existing code is too broken to be fixed. 17:41:32 yes 17:41:48 but the methodology they have is something we can replicate 17:41:50 When that happens in a software project, rather than try to make the fix using code, the better bet is to take a step back and do design. 17:42:54 Sure, so lets document it at a high level so that we can make sure that it is the best approach. 17:43:51 I'm really not trying to put a damper on things and I think you're doing a great job. 17:43:56 I might be wrong, but this is probably way beyond our capabilities (tracking fingers, etc). That's cutting-edge tech that MIT folks work on… heh 17:44:16 I'm not thinking about rewriting the algorithms. 17:44:25 the fundamentals are here though john 17:44:26 Yes, that is beyond our current capabilities. 17:44:28 I think this makes sense 17:44:34 john was looking more closely at the code in an attempt to learn Python 17:44:53 And yes, definitely. John is doing a great job in learning a language in a difficult context. 17:44:58 they already have haars defined, which is what the mit guys do 17:46:39 so are we saying we should stop what were doing and do a high-level assessment ? 17:46:48 then come up with a design? 17:47:20 Yes, that would be good. 17:47:44 Sorry, I'm in a f2f meeting so I've been catching up. 17:48:11 It seems to me that the first step is to come up with a high-level document that describes the current design. 17:48:12 ok, should i continue with my redesign attempt? 17:48:30 I think we should do the assessment first to make sure we're going in the right direction. 17:48:51 assessment of what the program does, or what the code does? 17:48:54 ok, do we have some design models to choose from? 17:50:11 heidi: have you already started doing some of this at http://foss2serve.org/index.php/MouseTrap_Dev_Help/mousetrap_internals#MouseTrap_Structure 17:50:31 I think we need to see what we have first. What does the current code do? 17:50:33 Yes, exactly! 17:50:48 The diagram I did shows all of the major code units and their containment. 17:51:12 Now we need to take the OCVFW part and do a class diagram. 17:51:38 What are the classes/modules, their main responsibility (one-two sentences), and how are they related? 17:52:02 A picture, I'm meaning. 17:52:16 With boxes and arrows. UML class diagram would work. 17:52:19 Does this make sense? 17:53:02 im not really sure, all of those things are already there 17:53:18 Can you point me to the class diagram for OCVFW? 17:53:21 Did I miss it? 17:53:24 don't we already have a it http://foss2serve.org/index.php/MouseTrap_Dev_Help/mousetrap_internals#OpenCV_Framework_.28ocvfw.29 17:53:55 Yes, this is a start. 17:54:03 But it doesn't have all of the code included. 17:54:38 they are the classes that are mostly used, besides the idms 17:54:41 Where is the IDM stu? 17:54:46 "stuff"? 17:54:54 Right, I'm only getting a partial picture. 17:55:00 idm? 17:55:07 image detection module 17:55:08 Sorry, maybe I'm slow but I need the big picture in order to understand. 17:55:13 :-) 17:55:16 oh 17:55:56 So it may be that we can keep the current design. But we should document it for newbies like me :-) 17:56:26 ok...it's almost 1 o'clock...thoughts for next steps? 17:56:37 document mousetrap? 17:56:39 I'm tied up all weekend so I won't get to look at this until Tuesday. 17:56:48 In particular, document the OCVFW. 17:56:52 should the big picture documentation that heidi started continue 17:56:58 Yes. 17:57:38 And yes, I need to leave at 1:00. Sorry. 17:57:51 john: do you think you can help some in this respect...especially if you start with the Pydocs? 17:58:06 If anyone comes up with a box and line draft of what is going on in ocvfw, please circulate. And I'll do the same if I get to it first. 17:58:15 we already have an epydoc 17:58:35 Yes, do we have a graphic as well? 17:58:42 sure heidi, i might get around to it in the next few days 17:58:45 A box and line diagram? 17:58:56 no, it wouldnt generate 17:58:59 Sure, that would be most helpful. And if you don't, I'll work on it next week. 17:59:03 Right, ah, I remember this. 17:59:04 ok 17:59:10 So lets see if we can construct one. 17:59:37 And when we're convinced we like that design, we can go back to the code level. 17:59:48 alright 17:59:51 :-) 17:59:59 ill make sure it gets done quickly then :) 18:00:09 ;-) 18:00:13 I understand the process may feel a bit stop and go with some dead-ends, but we're making progress! 18:00:19 :-) 18:00:23 yes! 18:00:25 OK, I need to go. 18:00:31 me too 18:00:34 Yes, I definitely feel like we're making headway. 18:00:37 thank you all! 18:00:37 Bye all! 18:00:43 bye bye! 18:00:44 Yes, thank you! 18:01:11 john did you still want to ask amber some questions? 18:01:22 or are you good for today? 18:01:25 Already did 18:01:34 ok...then I'll end the meeting 18:01:42 bye 18:01:48 #endmeeting