We normally see around a few birds and it is rather easy to count them. However, when there is a flock with dozens, hundreds or thousands of birds, there is need for an automated (computer-assisted) method to count the birds. Without a computer-assisted method, it is easy to over/under-estimate the count, and worst of all, there is no way to provide evidence of your count to a third-party.
There are several efforts to use software to count birds and other wildlife. Juan M. Pérez-García in The use of digital photography in censuses of large concentrations of passerines: the case of a winter starling roost-site (2010) describes how to use the UHTSCSA Image Tool 3.0 (specialized image processing software primarily for medical applications) in order to count the population of flocks. He calculates the error from the automated counting from the images. The specific software is closed-source, for Windows only and was last updated in 2002.
Another option that is suitable for bigger birds such as flamingos is described at An automatic counter for aerial images of aggregations of large birds (2011) (full text) by Arnaud Béchet et al. A specialized program was written, called FLAMINGO (distributed under the CeCILL license, a French free and open-source software license), that can count populations of birds that their body shape is shown as an ellipse in aerial photographs.
Each bright spot most likely corresponds to a bird, and the software manages to identify and count them. Apparently, the software has been tuned to work with such low resolution images, since the airplane probably had to fly high enough in order not to disturb the flock.
I could not get it to work reliably with my photos. It works better with pre-processed images at low resolution.
A final option is to use ImageJ, as explained by Christof, at How to count the birds in a photo of a flock – automatically! I will be repeating the instructions here, with emphasis on how to use on Ubuntu. ImageJ has been developed in Java, thus it is also available in Windows and OS/X. Check at ImageJ on how to download and install on Windows or OS/X (then, continue at step 3 below).
- First of all, ImageJ is available at the Software Centre in Ubuntu. Find it and install it,
You will notice that the icon of ImageJ will then be automatically added to the launcher.
The icon looks like a golden optical microscope.
- The version that we just installed was 1.47a, and was released in the summer of 2012. At http://imagej.nih.gov/ij/notes.html we can see that there is a more recent version. Let's update! We need to close the ImageJ application (if it is running) and then open the Terminal window. There, we run gksudo imagej which will run ImageJ with superuser privileges. The reason why we do this, is to click on the Help → Updated ImageJ... menu, and get ImageJ to auto-update itself. Do that. Once the update is completed, we can close ImageJ and start it again from the Launcher and get the latest ImageJ!
- Let's start with an example. Let's count the birds at
Right-click on the image above and save it locally in order to open with ImageJ. Then, start ImageJ and open the image.
- In ImageJ, click on the menu Image → Type → 8-bit in order to convert the image to an 8-bit image. This step simplifies the image for the next step. The colors are reduced as they are not important for our counting.
- Then, click on the menu Image → Adjust → Threshold... With the Threshold tool we can select what information on the image to keep, and easily remove the rest. We set lower and upper thresholds, and at the same time can see in the image when the birds and just the birds appear in the special red color. Once we are happy with the threshold values, we click on Apply. By applying, the features in the image that are in red will remain, and the rest are gone.
- Now let's count. Click on Analyze → Analyze Particles... (see documentation at http://rsbweb.nih.gov/ij/docs/guide/146-30.html)
In the Size text box we can specify the range for the size of each individual bird. 0-50 means that a single pixel up to a group of 50x50 (2500) pixels will be counted as an individual bird. Circularity describes how circular the shapes of the birds should be. Circularity 1 means a perfect circle and 0 means not a circle at all. Therefore, the value 0.00-1.00 means that we accept here any shape. Finally, we click OK in order to perform the analysis.
- Here is the output,
You can notice that the branch/stick on the upper-left of the image has not been counted as a bird due to the upper size limit that we specified. The total number of birds has been counted to 803. Obviously there should be some errors, and depending on the set of images that we work on, it is important to calculate how big that error can be (comparing with hand-counting from the photograph, etc).
Let's try with another image, a photograph straight from the camera.
You need to click on the image in order to get the full resolution (4912 x 2760). Them, click to save as an image file.
You can distinguish most of the birds at the lower-right of the image. Feel free to try to count them manually before getting the result from ImageJ.
It is helpful, after you convert the image to 8-bit, to try to subtract the background of the image. For this image, the clouds will get dull which will help with the next steps in the processing. To subtract the background, click on Process→Substract background...
Below is an animated GIF that shows a section of the original photograph, in three animated frames. The first frame is the original photograph, after the background has been subtracted. The second frame shows the birds being identified after the threshold has been applied. The third frame has the birds numbered.
You may notice that two birds have not been picked up by ImageJ as they can barely be distinguished. Another source of error is when two or more birds overlap, and are counted as one (this case is not shown in the animated GIF). These two issues contribute to the margin of error, when using ImageJ.
ImageJ can accept plugins, so it is feasible to write a BirdCounting plugin that performs these steps in one go.
Bird counting is a difficult task. By taking photographs of a flock, it is possible to count them and provide evidence of the count.
To help foster these types of sessions, there is a special Users track.
"The focus of the Users track is to highlight ways to get the most out of Ubuntu, on your laptop, your phone or your server. From detailed how-to sessions, to tips and tricks, and more, this track can provide something for everybody, regardless of skill level."
Elizabeth Krumbach Joseph
I'm excitied to be a track lead for this track along with Liz and Val. We are all inviting you to consider scheduling a session to share your knowledge of ubuntu. Share an idea, discuss your passion, give a how-to, etc. The sessions in this track are meant for other users of ubuntu like yourself, so feel free to share.
Regardless of your desire to contribute a session, I would encourage everyone to take a look at the schedule as it evolves and considering joining in sessions they find interesting.
Remember, this track is your track and filled with your sessions. Let's help make the online summit a success.
So ready to propose a session? Checkout this page and feel free to ping Val, Liz or myself for help. Don't forget to register to attend and check out the currently scheduled sessions!
A few people have observed dropouts using WebRTC, including the new Debian community service at rtc.debian.org
I've been going over some of these problems and made some improvements. If you tried it before and had trouble, please try again (rtc.debian.org is running with some of the fixes already).
In this case, you may see the picture of the other person for a split second and then the websocket link disconnects and JSCommunicator re-initializes itself.
People observing this problem had sometimes found that audio-only calls would work more frequently.
I believe one reason for this problem has been some incorrect handling of the OpenSSL error queue. I posted my observations about this on the resiprocate developer's list and included a fix for it in the recent 1.9.7 release.Call starts, no remote picture appears, call stops after 20 seconds or so
A BYE message usually includes a reason such as this:
Reason: SIP ;cause=200; text="RTP Timeout"
This particular reason (RTP Timeout) may indicate that the TURN server is faulty, not running at all or is not reachable due to one or both users being behind a firewall.
If you experience this problem but some other reason code appears, please share your observations on the repro-users mailing list so it can be improved.
Find joy and beauty everywhere, every day, every moment. It is around you; learn to see it.
Love yourself, and treat yourself with kindness.
Breathe deeply, and drink lots of water.
Love with an open heart, and care for those who love you back.
Spend no time and energy on those who pull you down, even family and "friends."
Value your opponents; they keep you honest, and learning. Collaborate with them if possible.
Make your bed every morning. Excuses are boring!
Brush and floss every tooth you want to keep. Get regular checkups, and follow the expert's advice.
Listen twice as much as you talk. That's why you have two ears, and only one mouth.
If you mess it up, clean up the mess. NOW.
Stay active, and keep challenging yourself physically, mentally, emotionally, and socially.
Do something scary as often as you dare. Travel! Make friends with strangers!
Spend your time and energy on the important, rather than being distracted by the urgent.
If you are unhappy, do something kind for someone else, secretly if possible.
Laugh, sing and dance as often as you can. Celebrate!
Great time, super well organized by this year’s TCamp staff. Really outstanding. Lots of really amazing discussion, and I feel a lot of effort is finally jelling around Open Civic Data, which is an absolute thrill for me.
Can’t wait to see what the next few months bring!
Last week i was invited by Canonical to their Client Sprint in Malta among five others community Core Apps developers :
- Andrew Hayzen and Victor Thompson : Music App developers
- Riccardo Padovani : Calculator/Reminders App developer
- Kunal Parmarl : Calendar App developer
- Nekhelesh Ramananthan : Clock App developer
There have been a lot of discussions about new designs(specially the new header and bottom edge), a lot of autopilot tests fixes and sure the Core Apps devs have provided a lot of feedback about their experience using the SDK components, QTC, Click tools(packaging) and writing autopilot tests.HTML5 SDK
In Tuesday, me Alex Abreu and David Barth had a meeting to discuss what needs to be done for the HTML5 SDK, then i started working on the implementation of the new header design, which will be done in steps.Tabs PageStack
We still need to add more new APIs to the header, but this will involve updating autopilote tests to make sure everything works as expected.
I have also started working on updating some componenets like the Slider and Switch/Toggle while i was coming back homeSlider
We still have a lot things in the pipe(i18n, grid system, sheets), stay tuned!
It was a wonderful and very productif week, thanks to everyone and specially Michelle & Popey!
I hope we will be invited again next time.
This is a series of posts on reasons to choose Ubuntu for your public or private cloud work & play.
When you see Ubuntu on a cloud it means that Canonical has a working relationship with that cloud vendor, and the Ubuntu images there come with a set of guarantees:
- Those images are up to date and secure.
- They have also been optimised on that cloud, both for performance and cost.
- The images provide a standard experience for app compatibility.
That turns out to be a lot of work for us to achieve, but it makes your life really easy.Fresh, secure and tasty images
We update the cloud images across all clouds on a regular basis. Updating the image means that you have more of the latest updates pre-installed so launching a new machine is much faster – fewer updates to install on boot for a fully secured and patched machine.
- At least every two weeks, typically, if there are just a few small updates across the board to roll into the freshest image.
- Immediately if there is a significant security issue, so starting a fresh image guarantees you to have no known security gotchas.
- Sooner than usual if there are a lot of updates which would make launching and updating a machine slow.
Updates might include fixes to the kernel, or any of the packages we install by default in the “core” cloud images.
We also make sure that these updated images are used by default in any “quick launch” UI that the cloud provides, so you don’t have to go hunt for the right image identity. And there are automated tools that will tell you the ID for the current image of Ubuntu on your cloud of choice. So you can script “give me a fresh Ubuntu machine” for any cloud, trivially. It’s all very nice.Optimised for your pocket and your workload
Every cloud behaves differently – both in terms of their architecture, and their economics. When we engage with the cloud operator we figure out how to ensure that Ubuntu is “optimal” on that cloud. Usually that means we figure out things like storage mechanisms (the classic example is S3 but we have to look at each cloud to see what they provide and how to take advantage of it) and ensure that data-heavy operations like system updates draw on those resources in the most cost-efficient manner. This way we try to ensure that using Ubuntu is a guarantee of the most cost-effective base OS experience on any given cloud.
In the case of more sophisticated clouds, we are digging in to kernel parameters and drivers to ensure that performance is first class. On Azure there is a LOT of deep engineering between Canonical and Microsoft to ensure that Ubuntu gets the best possible performance out of the Hyper-V substrate, and we are similarly engaged with other cloud operators and solution providers that use highly-specialised hypervisors, such as Joyent and VMware. Even the network can be tweaked for efficiency in a particular cloud environment once we know exactly how that cloud works under the covers. And we do that tweaking in the standard images so EVERYBODY benefits and you can take it for granted – if you’re using Ubuntu, it’s optimal.
The results of this work can be pretty astonishing. In the case of one cloud we reduced the Ubuntu startup time by 23x from what their team had done internally; not that they were ineffective, it’s just that we see things through the eyes of a large-scale cloud user and care about things that a single developer might not care about as much. When you’re doing something at scale, even small efficiencies add up to big numbers.Standard, yummy
Before we had this program in place, every cloud vendor hacked their own Ubuntu images, and they were all slightly different in unpredictable ways. We all have our own favourite way of doing things, so if every cloud has a lead engineer who rigged the default Ubuntu the way they like it, end users have to figure out the differences the hard way, stubbing their toes on them. In some cases they had default user accounts with different behaviour, in others they had different default packages installed. EMACS, Vi, nginx, the usual tweaks. In a couple of cases there were problems with updates or security, and we realised that Ubuntu users would be much better off if we took responsibility for this and ensured that the name is an assurance of standard behaviour and quality across all clouds.
So now we have that, and if you see Ubuntu on a public cloud you can be sure it’s done to that standard, and we’re responsible. If it isn’t, please let us know and we’ll fix it for you.
That means that you can try out a new cloud really easily – your stuff should work exactly the same way with those images, and differences between the clouds will have been considered and abstracted in the base OS. We’ll have tweaked the network, kernel, storage, update mechanisms and a host of other details so that you don’t have to, we’ll have installed appropriate tools for that specific cloud, and we’ll have lined things up so that to the best of our ability none of those changes will break your apps, or updates. If you haven’t recently tried a new cloud, go ahead and kick the tires on the base Ubuntu images in two or three of them. They should all Just Work TM.
It’s frankly a lot of fun for us to work with the cloud operators – this is the frontline of large-scale systems engineering, and the guys driving architecture at public cloud providers are innovating like crazy but doing so in a highly competitive and operationally demanding environment. Our job in this case is to make sure that end-users don’t have to worry about how the base OS is tuned – it’s already tuned for them. We’re taking that to the next level in many cases by optimising workloads as well, in the form of Juju charms, so you can get whole clusters or scaled-out services that are tuned for each cloud as well. The goal is that you can create a cloud account and have complex scale-out infrastructure up and running in a few minutes. Devops, distilled.
Returning to Randa is always tremendous, no matter what the work is. The house in Randa, Switzerland is so welcoming, so solid, yet modern and comfortable too.
KDE is in the building mode this year. If you think of the software like a house, Frameworks is the foundation and framing. Of course it isn't like a house, since the dwelling we are constructing is made from familiar materials, but remade in a interactive, modular fashion. I'd better stop with the house metaphor before I take it too far, because the rooms (applications) will be familiar, yet updated. And we can't call the Plasma Next "paint", yet the face KDE will be showing the world in our software will be familiar yet completely updated as well.
However, this year will see the foundation for KDE's newest surge ahead in software, from the foundation to the roof, to use the house metaphor one more time. I really cannot wait to get there and start work on our next book, the Framework Recipe book (working title). Of course, travel is expensive, and most of us will come from all over the world. So once again, we're raising funds for the Randa Meetings, which will be the largest so far. The e.V. is a major sponsor, but this is one big gathering. We need community support. Please give generously here:
Somewhat a response to
NOTE: These are more personal opinions and not necessarily those of my employer, your employer, or any of the businesses and government in my town,city, state, country.DRM
It is *never* something people want. Have you ever heard someone say “I really want this content I bought/”rented” to be harder to share/remix/watch and to have even greater legal ramifications if I do so?” They do want content made by Hollywood, but those are different things.DRM – Mozilla being played?
This reminds me of the time Chrome said it would drop H264 . From what played out in public it seemed that Mozilla didn’t see the need to push for H264 sooner because they trusted Google to actually drop H264 support.
In a somewhat reverse situation, Mozilla just said they will adopt EME in Firefox before any of the possible benefits are realized by others. Right now it’s being implemented only in Chrome and IE 11 , and I’ve only seen it used in Chrome OS and IE 11. From my point of view I would have preferred if Mozilla had at least waiting to see if we will get more platform support from major vendors on this. (aka Linux support for Netflix)
If so, maybe the increase in Linux market-share would provide some balance to the DRM’s negative affects. Making free software overall a net win. If so, I would (still reluctantly) support Mozilla’s decision here if they saw it as an end to get Hollywood media to more freer platforms. But why not wait and see if this is actually true with Google Chrome/Netflix on Linux?
I would like to see Mozilla pushing Indie/Crowdsourcing media, like:
Paid streaming site for indie videos https://indieflix.com/
Public broadcasting http://www.pbs.org/
Better publishing http://www.getmiro.com/
Basically, How can Mozilla use it’s capabilities to better change the media landscape? (A slightly “better” form of DRM should not be the answer to this question).
It doesn’t work (and almost certainly never will) and it gives people a false sense of doing something. You are giving advertisers another data point to track! It literally does the opposite of what is supposed to.
- Finish blocking 3rd party cookies (https://blog.mozilla.org/privacy/2013/02/25/firefox-getting-smarter-about-third-party-cookies/)
- Promote (by adding it as a search option, etc) providers that promise to not track ANY of their users. DuckDuckGo being the most obvious example.
Their is so little difference between Yahoo and Bing search.. and DuckDuckGo is a damn good search engine.
- Push advertisers off of Flash (generally a good idea, but also will help with privacy – no flash cookies, etc)
Generally I’m supportive of the Click-to-play, etc initiatives Mozilla has taken thus far. Flash is the exception to that rule. Here’s the outline of a plan to push advertisers off of it. (the numbers are obviously made up for illustrative purposes)
- Start forcing Click-to-play for Flash when the site has more than 6 plugins running (pick some “high” number, and count all plugins, not just flash)
- Reduce the number of plugins to 5, after some number of Firefox releases or some specific Adobe Flash counting metric. Repeat pushing to 4, etc.
- Once advertisers get on board and Flash ads aren’t served by the big advertisers, now we can push Flash to click-to-play at 2 instances per page.
- Once flash usage drops under 5% , we’d be able to push it to default click-to-play for all Flash.
You’ve removed the (easy) option to disable it. When will it go away for good? Why does Chrome let the user see what protocol version (TLS 1.2 vs 1.0, etc) their users are using, but Firefox doesn’t?Mobile – Firefox OS
Well I work at a direct competitor in mobile… but not actually working with our phone product..
- Launching just with Facebook contact sync well, isn’t very open and totally goes against promoting those that respect your same values.
- I get that you can’t magically make the devices more open, but at least can we get public commitments for how long a device will be supported for? And how often it will get Firefox OS updates?
- I wish you had used Thunderbird as Firefox OS’s email client… I think that would let it scale really really well and give you a new reason to push features there.. Maybe you are under the hood?
If you’re reading this and don’t know, you can try out Firefox OS (“Boot2Gecko”) on your desktop too! (https://nightly.mozilla.org/)End on a positive note..
I love the new Firefox interface. It’s awesome and makes customizing the browser much better. I’m a nightly user and teach courses on Firefox. I’m not going anywhere (fast) over the DRM decision. Going to keep doing what I do and see how it pans out…
* Command & Conquer
* How-To : Python, LibreOffice, and GRUB2 Pt.1.
* Graphics : Blender and Inkscape.
* Review: Ubuntu 14.04
* Security Q&A
* What Is: CryptoCurrency
* Open Source Design
* NEW! - Arduino
plus: Q&A, Linux Labs, Ask The New Guy, Ubuntu Games, and a competition to win a Humble Bundle!
If you're making hamburgers, buns are needed. You can buy them but they are dead simple to make yourself and (like most homemade bread) they're going to taste far superior to anything that comes off a shelf.
Just in case you wanted my basic (and perfect) hamburger mince recipe to:Hamburger Recipe
- 3 cups all-purpose flour
- 1 teaspoon salt
- 1 (1/4 oz) package active dry yeast
- 1 cup warm water
- 1 large egg
- 3 tablespoons butter, melted
- 3 tablespoons sugar
- 1 tablespoon milk
- olive oil
- 1 egg, beaten
- 1 tablespoon sesame or poppy seeds, for garnish (optional)
4 hours of waiting; 10 minutes of work; Makes 8 buns
- Dissolve the yeast in the warm water with 1/4 of the flour. Let stand until quite foamy.
- Whisk together an egg, with the milk, butter & sugar.
- Dump the remaining flour and salt into a food processor (or stand mixer with a dough hook).
- Add the wet ingredients:
- If using a food processor, slowly pour in the yeast mixture & the egg-milk mixture and blitz until the mixture comes together into a ball.
- If using a stand mixer, add the yeast & egg-milk mixtures and run the machine on low for 5-6 minutes.
- Dump the dough-mass onto a lightly floured surface and form into a ball.
- Coat lightly with olive oil and place in a large bowl. Cover lightly with a towel and let rise until it has doubled in volume –about 2 hours.
- Transfer risen dough to a lightly floured surface, and flatten a bit to remove any large bubbles.
- Form into a large even circle and divide into 8 even pieces. Form each of those into a ball, flatten slightly and place onto a baking sheet lined with parchment paper.
- Lightly drape a sheet of plastic wrap over the buns and let rise again for another hour.
- Preheat the nearest oven to 375 degrees Fahrenheit (190 Celcius).
- Lightly brush all the buns with the beaten egg and sprinkle with sesame or poppy seeds, if using.
- Bake for 15-20 minutes until the exteriors are golden brown.
- Remove & let cool completely. Slice in half crosswise & serve.