Objectron is a new SOTA dataset, recently presented by Google AI, which intended to improve 3D object recognition in videos. The dataset contains 15 thousand short video clips, each containing annotation of 3D boundaries of objects. The dataset contains both real clips and synthetic ones, that is, generated based on real ones.
The dataset is designed to facilitate the process of training models for 3D objects on 2D image and video data.
While 2D prediction only provides 2D bounding boxes, by extending prediction to 3D, one can capture an object’s size, position, and orientation in the world, leading to a variety of applications in robotics, self-driving vehicles, image retrieval, and augmented reality. …
Do you do all the things time-management gurus tell you to but still end up less productive than you thought you would? There are several secrets that not everyone will tell you about. I will touch on 4 of the ones that stood out to me.
After an immense amount of research on the world’s most productive people, it becomes evident that they define productivity differently. It’s not about doing more, not about stuffing your schedule to the brim, not about getting more things done. …
When you are just starting to learn Python, someone may explain to you that you can add your source folder to the PYTHONPATH environment variable, and then your code can be imported from other directories. Very often, the explainer forgets to say that, in most cases, this is a bad idea.
Some people find this on the Internet; others know it from their own experience. But too many people (especially inexperienced programmers) think that there are no other alternatives.
Even if you know there is an alternative; it is not always easy to get used to and start using it. Python tools are confusing because there is a lot of software built on top of one another, with a ton of overlap and problems that come with it. …
Dictionary is an unordered data structure that allows you to store key-value pairs. Here’s an example of a simple Python dictionary:
This dictionary uses strings as keys, but the key can be, in principle, any immutable data type. The value of a particular key can be anything. Here’s another example of a dictionary where keys are numbers and values are strings:
An important clarification: if you try to use a mutable data type as a key (e.x. list), you will get an error:
In fact, the problem is not with mutable data types, but with non-hashable data types, but usually, they are the same thing. …
Responsive layout changes the page’s design depending on the user’s behavior, platform, screen size, and device orientation and is an integral part of modern web development. It allows you to significantly save money and not draw a new design for each resolution, but to change individual elements’ size and location.
This article will go over the basic elements of a website and how to adapt them.
In principle, you can divide devices into different categories and typeset for each of them separately, but it will take too long, and who knows what standards will be in five years? …
Python is a dynamically typed language and allows us to operate fairly freely on variables of different types. However, when writing code, we somehow assume which types of variables will be used (this may be caused by a limitation of the algorithm or business logic). And for the program to work correctly, it is important for us to find errors associated with transferring data of the wrong type as early as possible.
Keeping the idea of dynamic duck typing in modern versions of Python (3.6+) supports annotations of variable types, class fields, arguments, and return values of functions:
An interview is a dialogue, and questions to the employer are part of it. Moreover, the employer himself expects questions from you, because according to them, he also determines how competent the applicant is and whether he is serious about it.
Do not take the interview as an exam with dry grades on the result: you can prepare brilliantly, “pass” the technical part, but “fail” the questions to the employer at the interview, as well as getting the job itself.
However, I would like to highlight 13 questions that became essential from my experience as an employee and an employer.
What is the reason for opening a vacancy, and how long has the search been going on? …
The Optical Character Recognition (OCR) systems have been widely used in a variety of application scenarios, such as office automation (OA) systems, factory automation, online educations, map productions, etc. However, OCR is still a challenging task due to the variety of text appearances and the demand for computational efficiency.
In the recently published paper, the Baidu team proposes a practical ultra-lightweight OCR system, called PP-OCR. The overall model size of the PP-OCR is only 3.5M parameters for recognizing 6622 Chinese characters and 2.8M parameters for recognizing 63 alphanumeric symbols, respectively. We introduce a bag of strategies to either enhance the model ability or reduce the model size. The corresponding ablation experiments with real data are also provided. Meanwhile, several pre-trained models for the Chinese and English recognition are released, including a text detector (97K images are used), a direction classifier (600K images are used) as well as a text recognizer (17.9M images are used). Besides, the proposed PP-OCR is also verified in several other language recognition tasks, including French, Korean, Japanese, and German. …
In recent months I use Go for the implementation of Proof of Concept in my leisure time, partly to study of Go programming language itself. Such “Hello World!” programs themselves are elementary and not the purpose of this article, but the experience of using Go itself deserves a few words about it.
Go promises to be the mainstream language for scalable severe code. The language was created by Google, in which it is actively used. To sum up, I honestly think that the design of Go is bad for smart programmers.
Go is very easy to learn, so simple that it took me one evening to introduce it, and then I could write code productively. The book on which I have studied is called Go is An Introduction to Programming in Go. The book, like the Go source code itself, is easy to read, has good code examples, and contains about 150 pages that you can read at a time. This simplicity is refreshing at first, especially in a programming world full of overcomplicated technologies. But in the end, sooner or later, the thought arises: “Is this really so?” …
It is worth noting that, despite the fact that IT has developed a scale for evaluating programmers (Trainee, Junior, Middle, Senior, Lead), with which more or less everyone agrees, there is not yet a precise definition of each level of general opinion among companies. Therefore, each company sets internal requirements for skills at each level.
Nevertheless, there is a basic set of knowledge and skills that can be used as a whole to guide in evaluating yourself. Many experts argue that today the requirements for Middles are somewhat overestimated.
The position of a Middle-developer presupposes not only a confident knowledge of the programming language but also the broadest knowledge in related technologies. The Middle position imposes on a specialist the responsibility not only to program “anything”, but also to teach, optimize the code, disassemble, and maintain someone else’s code as if it were native. In fact, nowadays there are requirements for Middle-developer vacancies, as a few years ago for Senior. …