In the few days after making 1.60 public, I made some improvements that were worth putting out as a new version quickly. Here's what's new in 1.63:
- I improved the distortion correction algorithm substantially by (1) adding four more high-order radial and one higher-order tangential term term to the underlying model, which especially helps with extremely wide fisheye lenses but slightly improves accuracy across the board, and (2) improved the cost function and numerical minimization algorithm that find the distortion parameters. The previous distortion correction was already pretty good, so there's no rush to redo previous analyses, but there should be some slight improvements to accuracy, especially in highly distorted footage.
- Added diagnostics for the distortion model, and a page on this wiki describing the model and the meaning of the diagnostics, which are visible just below the distortion model parameters in the VidSync interface.
- Added the ability to select whether to see all distortion lines on the screen (while on the distortion tab) or just the ones on the current timecode. This makes it manageable to gather plumblines from multiple different frames in the same video and maximize input to the distortion model. This is rarely if ever necessary, but it's good to have the option.
- Added an automatic calculation of "distance to the nearest camera" for all 3-D points, which shows up in the points list on the measurement tab as well as in the spreadsheet and XML data exports.
- Added buttons to reset just the front face or back face of the calibration frame, not just both at once. This makes it possible to correct user mistakes during calibration (such as accidentally clicking on a bunch of the wrong points) by redoing the face that was messed up, without having to redo both of them.
- Added a "tally" button to the measurement interface that pops up a running list of the number of events for each type under a given object (for example showing the number of length measurements and foraging maneuvers for a particular fish, etc).
- Fixed a bug in the distortion correction display that was causing the final, straightened lines to always appear perfectly straight. Previously, it was actually just showing a straight line between the endpoints of each corrected plumbline. Now it shows both the actual corrected plumbline and a striaght line between the endpoints as a reference to indicate how much distortion remains.
- Updated the entire project to use the same permissive, open-source license (the MIT license) instead of a hodgepodge of outdated default copyright notices.