Originally Posted by
crosswire
For example, they could attach a recognition app to a school camera system that would alert on violence in the school such as pushing, fighting, drug use, knives and guns present. OK it would be a little more than recognition. Some simple Artificial Intelligence* would be involved.
I would figure that there are many approaches to a recognition algorithm. (I have never learnt any unfortunately) I am picturing the algo would process video streams of people from different angles, and convert them to an animation of "stick men", viz, only wire-frame for bones and joints, similar to "rag-dolls" in game physics. Then based on the animation, a punch could be detected if the animation observed is closely similar to that of a punch animation. Also a "fall", "kick", etc could be detected.
Wire-frame animations could be coded in for people and common animals. Now, if a fall was detected, and if a moving object other than a wire-frame person was also detected (e.g. a thrown chair/object) then a physics simulation between the thrown object and the stick man/rag-doll fall could be done to verify the fall observed. The simulation would then also output a suggested impact force that could cause the rag-doll to react, and fall. If the simulation suggests an attack, then a pic or short clip could be sent to the security personnel.
Furthermore the app could learn, if it keeps on sending useless pics, then the security personel would tag the pic as useless and then that would feedback into the app, and it would remember not to send similar pics.
(A tweak to the above algo could result in a recognition app that could detect the occurrence of leaving an unattended bag at an airport over 5 mins. Simply the animation of someone walking with a bag and then leaves it)
Originally Posted by
sumo
I actually think the opposite is the best approach. Expose students to as many aspects of programming as is feasible. Let them see the different kinds of things that can be done and how smart people have solved problems before. Hopefully they get interested in at least one area and start digging further on their own because no amount of school/classes can make you a good programmer - you have to put out the effort on your own.
True, but when you learn all the 'known' techniques, there may still be other techniques that are left to be 'discovered' that may offer better solutions. You need to remember to keep your mind opened to that possibility.
Many times technology change, and some methods get obsolete. Some techniques that were learnt may also be wrong or faulty , so don't underestimate yourself that you can create something new or improve something. Don't be tied down to what you learn. If you sensibly and logically think that you can do better then try. However to ovoid reinventing the wheel, you should learn the technology of the wheel, but just don't be binded by it.
In the simulation field, even when you have done some amount of simulation apps already, you still would have to learn about a new system that you are planning to simulate.
If you are simulating traffic, you need to have a keen observation of Jamaican drivers:
how they drive: change lanes, react to potholes, react to water.
how cars speed up: so stopping and acceleration is modeled right.
so that your simulated model work closely to reality.
In a space-time sim, you would have to have knowledge of relativity, and dark matter. The point is, sims has a common mathematical basic, but the actual algorithms depend on the system being modeled. You would have to understand the system so that you can code the algorithm with all the relevant mathematical equations, and logical paths. Also you would have to mathematically estimate some sections. Unnecessary high degree of accuracy involves more compute time. This is not practical with limited compute power. There is an alternative to learning the system on your own, and that is to work with an expert in that system. Thus all you really need is the skill/experience in developing sim apps. You just need that specialized skill and enough generalized skill to collaborate with other specialists.
Imagine this scenario: Developing a weather simulation app. Right of the bat you would need to have more than basic knowledge in Geology, e.g. types of clouds and climates etc. Plus you would need knowledge of atmospheric physics and thermodynamics etc, plus discrete/differential maths, plus collecting data from various sources. If you collaborate with experts in geology, meteorology, physics, then you could get all the info that you would need for the sim app algos. No one straight out of University would be that skilled on all, anyways. Thus collaboration is the way to go.
The physics expert may consider:
- how much sunlight hits each square km area of the earth's surface -> how much is reflected-> thus how much heat is generated, per each time interval (Both current and expected)
- what emissions are present in city areas with regards to smog/fluorine emissions (measured and predicted)
- vapour emissions around lakes, sea sides and deep forest -> humidity changes from evaporation
- the rotation of the earth
The Geologist may overlap with some of this, and add: - cloud types formed with different temperature changes, humidity changes. The cloud types would then feedback to the amount on sunlight that hits different layers, precipitation, and so on
Various sensors, at various locations, would gather data such as current temp, humidity, pressure, and so on, and feed the sim.
Satellite picture data could measure/estimate radiation incidence and infrared emission of the earth, to see which surfaces store heat longer, during nights. You could calculate the predicted parameters eg temperature of a spot (square km) thus predict the winds to be formed, which will then feedback and affect the predicted temperature. I can only guess that some advanced differential maths and coding algos would be needed.
It would be difficult to find one expert in Computer Science, Geology, and Physics. However, simpler to find 3 experts in Comp Sci with only basic Geo or Phys, or 3 experts in Geo with only basics in maths. The challenge would be to integrate the knowledge of different specific experts. I would say that some basic knowledge of other fields would help in the collaboration of different technologies.
The same goes for research into an earthquake prediction app. Knowledge of Geo, Phys, and so on would be needed. If you have basic knowledge of Geo then you could get the relevant equations training from an expert in Geo, at that time when you are planning to do that app. Collaborate the needed info when you need it. Work and develop a specific skill and learn additional tasks part-time when needed. Rather than learning everything before you start to work.
Data on objects from below the surface of the earth would be needed for the sim. Maybe, it could be collected by a type of sonic device similar to the one that uses ultrasound to see a fetus in a womb. Imagine a coded pulse sonic radar device on every square kilometer on the earth's surface, or for a small country, or for a small area of land. Think of a grid layout. One of the devices could emit a loud explosive coded sonic pulse (and repeats at different audio ranges, because different rocks may reflect different frequencies) Then, via GPS synchronous timing, all the devices then listens for the different echos (e.g. one device may receive 4 echos at different times). Then, another device (on a different grid location) emits another pulse. This next pulse could have a different code (maybe appended with the grid id) and all the devices listen for echos. All the data would be fed into a computer that would generation a 3D model using an algorithm similar to that for displaying visual of a foetus in hospitals, using ultrasound. Then these grid sensors could be offset-ted (moved to a slightly different location, or maybe just remove the devices on the east edge only, and append them to the west edge, repeat, and eventually the grid would effectively move) to provide more data for the 3D output. From the 3D model: the density, air pockets, minerals deposits may be observed (I don't know really, unfortunately, I am not a geologist. Detecting movement of the crust, horizontally and vertically, would have to be done somehow. Guessing movements of the core, may also have to be done, that is, the movements of the liquids under the crusts. Intelligent 'Guesses' could be made from other data. (Again I don't really know) Guessing the detail 3D structure of the crust and below until it matches measured data could be done. The Physics expert would contribute how sound vibrations affect various materials based on materials property like rigidness and density (vibrations travel faster, I think, in denser materials)
Let's act on what we agree on now, and argue later on what we don't.
Black men leave Barbeque alone if Barbeque don't trouble you